diff options
author | Andreas Gampe <agampe@google.com> | 2015-06-29 21:23:23 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-06-29 21:23:23 +0000 |
commit | 0ca5f9372aaf70538eb9769a4b13a314de2febbd (patch) | |
tree | 02b52fd9134a386a8942afe01d771bcc760bb245 /runtime/arch | |
parent | 0e081c1156f99eaaf8876aac7c186df28061f82d (diff) | |
parent | d5ec1ce96f8e444bb9bcd8b0a0a1a290fbf879bd (diff) | |
download | art-0ca5f9372aaf70538eb9769a4b13a314de2febbd.tar.gz art-0ca5f9372aaf70538eb9769a4b13a314de2febbd.tar.bz2 art-0ca5f9372aaf70538eb9769a4b13a314de2febbd.zip |
am d5ec1ce9: am 3b0667c1: Merge "ART: Fix CFI annotation for art_quick_aput_obj"
* commit 'd5ec1ce96f8e444bb9bcd8b0a0a1a290fbf879bd':
ART: Fix CFI annotation for art_quick_aput_obj
Diffstat (limited to 'runtime/arch')
-rw-r--r-- | runtime/arch/arm64/quick_entrypoints_arm64.S | 1 | ||||
-rw-r--r-- | runtime/arch/x86/quick_entrypoints_x86.S | 5 | ||||
-rw-r--r-- | runtime/arch/x86_64/quick_entrypoints_x86_64.S | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S index f3c111f99f..614936b93f 100644 --- a/runtime/arch/arm64/quick_entrypoints_arm64.S +++ b/runtime/arch/arm64/quick_entrypoints_arm64.S @@ -1206,6 +1206,7 @@ ENTRY art_quick_aput_obj lsr x0, x0, #7 strb w3, [x3, x0] ret + .cfi_adjust_cfa_offset 32 // 4 restores after cbz for unwinding. .Lthrow_array_store_exception: ldp x2, x30, [sp, #16] .cfi_restore x2 diff --git a/runtime/arch/x86/quick_entrypoints_x86.S b/runtime/arch/x86/quick_entrypoints_x86.S index 98d08129cf..c9bc9779dc 100644 --- a/runtime/arch/x86/quick_entrypoints_x86.S +++ b/runtime/arch/x86/quick_entrypoints_x86.S @@ -1185,9 +1185,9 @@ DEFINE_FUNCTION art_quick_aput_obj pushl MIRROR_OBJECT_CLASS_OFFSET(%edx) // pass arg2 - type of the value to be stored #endif CFI_ADJUST_CFA_OFFSET(4) - PUSH ebx // pass arg1 - component type of the array + PUSH ebx // pass arg1 - component type of the array call SYMBOL(artIsAssignableFromCode) // (Class* a, Class* b) - addl LITERAL(16), %esp // pop arguments + addl LITERAL(16), %esp // pop arguments CFI_ADJUST_CFA_OFFSET(-16) testl %eax, %eax jz .Lthrow_array_store_exception @@ -1200,6 +1200,7 @@ DEFINE_FUNCTION art_quick_aput_obj shrl LITERAL(7), %eax movb %dl, (%edx, %eax) ret + CFI_ADJUST_CFA_OFFSET(12) // 3 POP after the jz for unwinding. .Lthrow_array_store_exception: POP edx POP ecx diff --git a/runtime/arch/x86_64/quick_entrypoints_x86_64.S b/runtime/arch/x86_64/quick_entrypoints_x86_64.S index 259cf97407..7d86c3accd 100644 --- a/runtime/arch/x86_64/quick_entrypoints_x86_64.S +++ b/runtime/arch/x86_64/quick_entrypoints_x86_64.S @@ -1256,6 +1256,7 @@ DEFINE_FUNCTION art_quick_aput_obj movb %dl, (%rdx, %rdi) // Note: this assumes that top 32b of %rdi are zero // movb %dl, (%rdx, %rdi) ret + CFI_ADJUST_CFA_OFFSET(32 + 4 * 8) // Reset unwind info so following code unwinds. .Lthrow_array_store_exception: RESTORE_FP_CALLEE_SAVE_FRAME // Restore arguments. |