[riscv-port] RFR: 8279346: riscv: Unnecessary sign extension in BigInteger intrinsics

Yanhong Zhu yzhu at openjdk.java.net
Fri Dec 31 09:18:52 UTC 2021


Reference: https://github.com/riscv-non-isa/riscv-elf-psabi-doc

" Scalars that are at most XLEN bits wide are passed in a single argument register, or on the stack by value if none is available.
When passed in registers or on the stack, integer scalars narrower than XLEN bits are widened according to the sign of their type up to 32 bits, then sign-extended to XLEN bits.
When passed in registers or on the stack, floating-point types narrower than XLEN bits are widened to XLEN bits, with the upper bits undefined."

So there is no need to do sign extension for signed integer input parameters.

-------------

Commit messages:
 - 8279346: riscv: Unnecessary sign extension in BigInteger intrinsics

Changes: https://git.openjdk.java.net/riscv-port/pull/40/files
 Webrev: https://webrevs.openjdk.java.net/?repo=riscv-port&pr=40&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8279346
  Stats: 41 lines in 4 files changed: 4 ins; 8 del; 29 mod
  Patch: https://git.openjdk.java.net/riscv-port/pull/40.diff
  Fetch: git fetch https://git.openjdk.java.net/riscv-port pull/40/head:pull/40

PR: https://git.openjdk.java.net/riscv-port/pull/40


More information about the riscv-port-dev mailing list