diff options
| author | 2015-07-17 20:14:50 -0700 | |
|---|---|---|
| committer | 2015-07-17 20:14:50 -0700 | |
| commit | 76914b0fc848fe0deed566af2255db7c183deaf2 (patch) | |
| tree | 32ed181f2e033aaf21efb2e3a829f38614635fc8 | |
| parent | 479ebe076561e4a48129ab0c78cf8ca93c44baf6 (diff) | |
ART: Fix arm32 quick_invoke_stub CFI
Follow-up to 4808846b2a8647a448aaa05d561a4f60b190196b.
Change-Id: I534ba39a4f59eaea9cfec8e81c944675284fc427
| -rw-r--r-- | runtime/arch/arm/quick_entrypoints_arm.S | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/runtime/arch/arm/quick_entrypoints_arm.S b/runtime/arch/arm/quick_entrypoints_arm.S index 068f458738..20001109a6 100644 --- a/runtime/arch/arm/quick_entrypoints_arm.S +++ b/runtime/arch/arm/quick_entrypoints_arm.S @@ -24,10 +24,9 @@ .extern artDeliverPendingException /* - * Macro that sets up the callee save frame to conform with - * Runtime::CreateCalleeSaveMethod(kSaveAll) + * Macro to spill the GPRs. */ -.macro SETUP_SAVE_ALL_CALLEE_SAVE_FRAME rTemp1, rTemp2 +.macro SPILL_ALL_CALLEE_SAVE_GPRS push {r4-r11, lr} @ 9 words (36 bytes) of callee saves. .cfi_adjust_cfa_offset 36 .cfi_rel_offset r4, 0 @@ -39,6 +38,14 @@ .cfi_rel_offset r10, 24 .cfi_rel_offset r11, 28 .cfi_rel_offset lr, 32 +.endm + + /* + * Macro that sets up the callee save frame to conform with + * Runtime::CreateCalleeSaveMethod(kSaveAll) + */ +.macro SETUP_SAVE_ALL_CALLEE_SAVE_FRAME rTemp1, rTemp2 + SPILL_ALL_CALLEE_SAVE_GPRS @ 9 words (36 bytes) of callee saves. vpush {s16-s31} @ 16 words (64 bytes) of floats. .cfi_adjust_cfa_offset 64 sub sp, #12 @ 3 words of space, bottom word will hold Method* @@ -380,17 +387,7 @@ INVOKE_TRAMPOLINE art_quick_invoke_virtual_trampoline_with_access_check, artInvo * +-------------------------+ */ ENTRY art_quick_invoke_stub_internal - push {r4, r5, r6, r7, r8, r9, r10, r11, lr} @ spill regs - .cfi_adjust_cfa_offset 16 - .cfi_rel_offset r4, 0 - .cfi_rel_offset r5, 4 - .cfi_rel_offset r6, 8 - .cfi_rel_offset r7, 12 - .cfi_rel_offset r8, 16 - .cfi_rel_offset r9, 20 - .cfi_rel_offset r10, 24 - .cfi_rel_offset r11, 28 - .cfi_rel_offset lr, 32 + SPILL_ALL_CALLEE_SAVE_GPRS @ spill regs (9) mov r11, sp @ save the stack pointer .cfi_def_cfa_register r11 |