RFR(S): 8205475 - AARCH64: optimize FPU loads and stores in C1_Runtime1_aarch64.cpp

Dmitrij Pochepko dmitrij.pochepko at bell-sw.com
Mon Jun 25 14:53:41 UTC 2018


Hi all,

please review patch for 8205475 - AARCH64: optimize FPU loads and stores 
in C1_Runtime1_aarch64.cpp

This patch replaces ldpd/stpd instructions with ld1/st1 for 
saving/restoring registers in C1_Runtime1_aarch64.cpp which is more 
compact and more beneficial for a number of stubs.

webrev: http://cr.openjdk.java.net/~dpochepk/8205475/webrev.01/

CR: https://bugs.openjdk.java.net/browse/JDK-8205475

Testing: hotspot jtreg test in fastdebug and release builds.

example:

   0x0000ffff88b23468: ldp       d0, d1, [sp], #16
   0x0000ffff88b2346c: ldp       d2, d3, [sp], #16
   0x0000ffff88b23470: ldp       d4, d5, [sp], #16
   0x0000ffff88b23474: ldp       d6, d7, [sp], #16
   0x0000ffff88b23478: ldp       d8, d9, [sp], #16
   0x0000ffff88b2347c: ldp       d10, d11, [sp], #16
   0x0000ffff88b23480: ldp       d12, d13, [sp], #16
   0x0000ffff88b23484: ldp       d14, d15, [sp], #16
   0x0000ffff88b23488: ldp       d16, d17, [sp], #16
   0x0000ffff88b2348c: ldp       d18, d19, [sp], #16
   0x0000ffff88b23490: ldp       d20, d21, [sp], #16
   0x0000ffff88b23494: ldp       d22, d23, [sp], #16
   0x0000ffff88b23498: ldp       d24, d25, [sp], #16
   0x0000ffff88b2349c: ldp       d26, d27, [sp], #16
   0x0000ffff88b234a0: ldp       d28, d29, [sp], #16
   0x0000ffff88b234a4: ldp       d30, d31, [sp], #16

changed to:

   0x0000ffff9cb23468: ld1       {v0.1d-v3.1d}, [sp], #32
   0x0000ffff9cb2346c: ld1       {v4.1d-v7.1d}, [sp], #32
   0x0000ffff9cb23470: ld1       {v8.1d-v11.1d}, [sp], #32
   0x0000ffff9cb23474: ld1       {v12.1d-v15.1d}, [sp], #32
   0x0000ffff9cb23478: ld1       {v16.1d-v19.1d}, [sp], #32
   0x0000ffff9cb2347c: ld1       {v20.1d-v23.1d}, [sp], #32
   0x0000ffff9cb23480: ld1       {v24.1d-v27.1d}, [sp], #32
   0x0000ffff9cb23484: ld1       {v28.1d-v31.1d}, [sp], #32


Thanks,
Dmitrij


More information about the hotspot-compiler-dev mailing list