[lworld] Fix the issues in code generation of StoreLSpecialNode

XMLWordPrintable

      There are a couple of issues:

      - On Aarch64, g1StoreLSpecialOneOop does not save mem and src during the GC pre-barrier, this risks clobber these values, which may lead to crashes or memory corruption when doing the store instruction.
      - It seems that the value passed to the post-barrier should be an uncompressed oop, this requires us to decode the narrow oop instead of simply zero-extending it.
      - Relax the restriction on the src register to be an arbitrary register.
      - Split the rule into 2 so that we can avoid cloberring an additional register on Aarch64 when the offset of the oop inside the payload is 0, it also makes the implementation a little easier to read.

            Assignee:
            Quan Anh Mai
            Reporter:
            Quan Anh Mai
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: