RFR: 8294492: RISC-V: Use li instead of patchable movptr at non-patchable callsites [v3]
Xiaolin Zheng
xlinzheng at openjdk.org
Wed Sep 28 11:09:42 UTC 2022
> A cleanup which can also reduce some code size. The main purpose is to separate the current mixed movptr usages: movptr's semantics allow it to be used for fixed-length patchable addresses. In the current backend several callsites which are not patchable use movptr (6 instructions) as well, but that's unnecessary for we can use li(1~6 instructions) to substitute them.
>
> This patch extracts the last 12-bit offset from the li(), a recursive function, to merge it into the rest "jalr/ld/sd..." that can accept a 12-bit offset as an operand, same as the movptr_with_offset before.
>
> Originally some non-patchable callsites:
>
> ;; 0x401ab1dc40
> 0x000000401372b324: lui t0,0x201
> 0x000000401372b328: addi t0,t0,-680 # 0x0000000000200d58
> 0x000000401372b32c: slli t0,t0,0xb
> 0x000000401372b32e: addi t0,t0,1905
> 0x000000401372b332: slli t0,t0,0x6
> 0x000000401372b334: jalr t0
>
> Now:
>
> 0x000000401b2bd9f4: lui t0,0x4003
> 0x000000401b2bd9f8: addiw t0,t0,-1275
> 0x000000401b2bd9fc: slli t0,t0,0xc
> 0x000000401b2bda00: jalr 1080(t0) # 0x0000000004003438
>
> Not so much, but the main purpose is to clarify the usage of movptr and li.
>
> The first commit has gone through a hotspot tier1~tier4; the other ones are testing under a hotspot tier1.
Xiaolin Zheng has updated the pull request incrementally with one additional commit since the last revision:
Fix as to comments
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/10462/files
- new: https://git.openjdk.org/jdk/pull/10462/files/ad15d6b2..4985dcf4
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=10462&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=10462&range=01-02
Stats: 89 lines in 7 files changed: 16 ins; 57 del; 16 mod
Patch: https://git.openjdk.org/jdk/pull/10462.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10462/head:pull/10462
PR: https://git.openjdk.org/jdk/pull/10462
More information about the hotspot-dev
mailing list