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