summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/arch/arm64/quick_entrypoints_arm64.S32
1 files changed, 12 insertions, 20 deletions
diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S
index 2622d400be..96ceecfe9b 100644
--- a/runtime/arch/arm64/quick_entrypoints_arm64.S
+++ b/runtime/arch/arm64/quick_entrypoints_arm64.S
@@ -83,12 +83,10 @@
* Runtime::CreateCalleeSaveMethod(kSaveAllCalleeSaves)
*/
.macro SETUP_SAVE_ALL_CALLEE_SAVES_FRAME
- // art::Runtime** xIP0 = &art::Runtime::instance_
- adrp xIP0, :got:_ZN3art7Runtime9instance_E
- ldr xIP0, [xIP0, #:got_lo12:_ZN3art7Runtime9instance_E]
-
+ // art::Runtime* xIP0 = art::Runtime::instance_;
// Our registers aren't intermixed - just spill in order.
- ldr xIP0, [xIP0] // art::Runtime* xIP0 = art::Runtime::instance_;
+ adrp xIP0, _ZN3art7Runtime9instance_E
+ ldr xIP0, [xIP0, #:lo12:_ZN3art7Runtime9instance_E]
// ArtMethod* xIP0 = Runtime::instance_->callee_save_methods_[kSaveAllCalleeSaves];
ldr xIP0, [xIP0, RUNTIME_SAVE_ALL_CALLEE_SAVES_METHOD_OFFSET]
@@ -127,12 +125,10 @@
* Runtime::CreateCalleeSaveMethod(kSaveRefsOnly).
*/
.macro SETUP_SAVE_REFS_ONLY_FRAME
- // art::Runtime** xIP0 = &art::Runtime::instance_
- adrp xIP0, :got:_ZN3art7Runtime9instance_E
- ldr xIP0, [xIP0, #:got_lo12:_ZN3art7Runtime9instance_E]
-
+ // art::Runtime* xIP0 = art::Runtime::instance_;
// Our registers aren't intermixed - just spill in order.
- ldr xIP0, [xIP0] // art::Runtime* xIP0 = art::Runtime::instance_;
+ adrp xIP0, _ZN3art7Runtime9instance_E
+ ldr xIP0, [xIP0, #:lo12:_ZN3art7Runtime9instance_E]
// ArtMethod* xIP0 = Runtime::instance_->callee_save_methods_[kSaveRefOnly];
ldr xIP0, [xIP0, RUNTIME_SAVE_REFS_ONLY_METHOD_OFFSET]
@@ -227,12 +223,10 @@
* TODO This is probably too conservative - saving FP & LR.
*/
.macro SETUP_SAVE_REFS_AND_ARGS_FRAME
- // art::Runtime** xIP0 = &art::Runtime::instance_
- adrp xIP0, :got:_ZN3art7Runtime9instance_E
- ldr xIP0, [xIP0, #:got_lo12:_ZN3art7Runtime9instance_E]
-
+ // art::Runtime* xIP0 = art::Runtime::instance_;
// Our registers aren't intermixed - just spill in order.
- ldr xIP0, [xIP0] // art::Runtime* xIP0 = art::Runtime::instance_;
+ adrp xIP0, _ZN3art7Runtime9instance_E
+ ldr xIP0, [xIP0, #:lo12:_ZN3art7Runtime9instance_E]
// ArtMethod* xIP0 = Runtime::instance_->callee_save_methods_[kSaveRefAndArgs];
ldr xIP0, [xIP0, RUNTIME_SAVE_REFS_AND_ARGS_METHOD_OFFSET]
@@ -331,11 +325,9 @@
SAVE_TWO_REGS x25, x26, 464
SAVE_TWO_REGS x27, x28, 480
- // art::Runtime** xIP0 = &art::Runtime::instance_
- adrp xIP0, :got:_ZN3art7Runtime9instance_E
- ldr xIP0, [xIP0, #:got_lo12:_ZN3art7Runtime9instance_E]
-
- ldr xIP0, [xIP0] // art::Runtime* xIP0 = art::Runtime::instance_;
+ // art::Runtime* xIP0 = art::Runtime::instance_;
+ adrp xIP0, _ZN3art7Runtime9instance_E
+ ldr xIP0, [xIP0, #:lo12:_ZN3art7Runtime9instance_E]
// ArtMethod* xIP0 = Runtime::instance_->callee_save_methods_[kSaveEverything];
ldr xIP0, [xIP0, \runtime_method_offset]