Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8294492

RISC-V: Use li instead of patchable movptr at non-patchable callsites

    XMLWordPrintable

Details

    • Enhancement
    • Status: Resolved
    • P4
    • Resolution: Fixed
    • 19, 20
    • 20
    • hotspot
    • 19
    • b18
    • riscv
    • linux

    Description

      A cleanup which can also reduce some code size. The main purpose is to separate mixed movptr usages: movptr's semantics allow it to be used for fixed-length patchable addresses. In the backend several places 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.

      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
      ```

      Attachments

        Issue Links

          Activity

            People

              xlinzheng Xiaolin Zheng (Inactive)
              xlinzheng Xiaolin Zheng (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: