diff options
author | Sung-Jae Lee <sjlee@mail.com> | 2016-06-10 16:33:17 +0900 |
---|---|---|
committer | Sung-Jae Lee <sjlee@mail.com> | 2016-06-15 20:49:20 +0900 |
commit | 3b2ce833f869cbc8abd5a586b671eb03e8948185 (patch) | |
tree | 61e6fb72fa786893b19d032f4cd740df63fb991f /src/vm/arm64 | |
parent | 6ff6621e235df975c4cfb6a619ba201aa3ee5b8c (diff) | |
download | coreclr-3b2ce833f869cbc8abd5a586b671eb03e8948185.tar.gz coreclr-3b2ce833f869cbc8abd5a586b671eb03e8948185.tar.bz2 coreclr-3b2ce833f869cbc8abd5a586b671eb03e8948185.zip |
[ARM64/Linux] Fix `error: index must be an integer in range.`
- Fix invalid varible name `*X19_X28' to '*X19_X29'
- Remove code for capturing `fp` status.
Diffstat (limited to 'src/vm/arm64')
-rw-r--r-- | src/vm/arm64/asmhelpers.S | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/vm/arm64/asmhelpers.S b/src/vm/arm64/asmhelpers.S index cccc870e71..e3011ce7b0 100644 --- a/src/vm/arm64/asmhelpers.S +++ b/src/vm/arm64/asmhelpers.S @@ -28,26 +28,25 @@ LEAF_ENTRY LazyMachStateCaptureState, _TEXT str lr, [x0, #LazyMachState_captureIp] - str fp, [x0, #LazyMachState_captureFp] - // str instruction does not save sp register directly so move to temp register mov x1, sp str x1, [x0, #LazyMachState_captureSp] // save non-volatile registers that can contain object references - add x1, x0, #LazyMachState_captureX19_X28 + add x1, x0, #LazyMachState_captureX19_X29 stp x19, x20, [x1, #(16*0)] stp x21, x22, [x1, #(16*1)] stp x23, x24, [x1, #(16*2)] stp x25, x26, [x1, #(16*3)] stp x27, x28, [x1, #(16*4)] + str x29, [x1, #(16*5)] ret lr LEAF_END LazyMachStateCaptureState, _TEXT // // If a preserved register were pushed onto the stack between -// the managed caller and the H_M_F, ptrX19_X28 will point to its +// the managed caller and the H_M_F, ptrX19_X29 will point to its // location on the stack and it would have been updated on the // stack by the GC already and it will be popped back into the // appropriate register when the appropriate epilog is run. @@ -57,7 +56,7 @@ LEAF_END LazyMachStateCaptureState, _TEXT // here because the GC will have updated our copies in the // frame. // -// So, if ptrX19_X28 points into the MachState, we need to update +// So, if ptrX19_X29 points into the MachState, we need to update // the register here. That's what this macro does. // .macro RestoreRegMS regIndex, reg @@ -70,11 +69,11 @@ LEAF_END LazyMachStateCaptureState, _TEXT // // $reg: Register name (e.g. x19, x20, etc) // - // Get the address of the specified captured egister from machine state - add x2, x0, #(MachState__captureX19_X28 + ((\regIndex-19)*8)) + // Get the address of the specified captured register from machine state + add x2, x0, #(MachState__captureX19_X29 + ((\regIndex-19)*8)) // Get the content of specified preserved register pointer from machine state - ldr x3, [x0, #(MachState__ptrX19_X28 + ((\regIndex-19)*8))] + ldr x3, [x0, #(MachState__ptrX19_X29 + ((\regIndex-19)*8))] cmp x2, x3 bne LOCAL_LABEL(NoRestore_\reg) |