diff options
| -rw-r--r-- | runtime/arch/arm/quick_entrypoints_arm.S | 4 | ||||
| -rw-r--r-- | runtime/arch/arm64/quick_entrypoints_arm64.S | 66 |
2 files changed, 36 insertions, 34 deletions
diff --git a/runtime/arch/arm/quick_entrypoints_arm.S b/runtime/arch/arm/quick_entrypoints_arm.S index 0fcf866e18..3d0da8075d 100644 --- a/runtime/arch/arm/quick_entrypoints_arm.S +++ b/runtime/arch/arm/quick_entrypoints_arm.S @@ -191,7 +191,7 @@ .cfi_rel_offset r11, 44 .cfi_rel_offset ip, 48 .cfi_rel_offset lr, 52 - vpush {s0-s31} @ 32 words of float args. + vpush {d0-d15} @ 32 words of float args. .cfi_adjust_cfa_offset 128 sub sp, #8 @ 2 words of space, alignment padding and Method* .cfi_adjust_cfa_offset 8 @@ -210,7 +210,7 @@ .macro RESTORE_SAVE_EVERYTHING_FRAME add sp, #8 @ rewind sp .cfi_adjust_cfa_offset -8 - vpop {s0-s31} + vpop {d0-d15} .cfi_adjust_cfa_offset -128 pop {r0-r12, lr} @ 14 words of callee saves .cfi_restore r0 diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S index 80cac61322..35f5c56282 100644 --- a/runtime/arch/arm64/quick_entrypoints_arm64.S +++ b/runtime/arch/arm64/quick_entrypoints_arm64.S @@ -331,22 +331,23 @@ #endif // Save FP registers. - stp d0, d1, [sp, #8] - stp d2, d3, [sp, #24] - stp d4, d5, [sp, #40] - stp d6, d7, [sp, #56] - stp d8, d9, [sp, #72] - stp d10, d11, [sp, #88] - stp d12, d13, [sp, #104] - stp d14, d15, [sp, #120] - stp d16, d17, [sp, #136] - stp d18, d19, [sp, #152] - stp d20, d21, [sp, #168] - stp d22, d23, [sp, #184] - stp d24, d25, [sp, #200] - stp d26, d27, [sp, #216] - stp d28, d29, [sp, #232] - stp d30, d31, [sp, #248] + str d0, [sp, #8] + stp d1, d2, [sp, #16] + stp d3, d4, [sp, #32] + stp d5, d6, [sp, #48] + stp d7, d8, [sp, #64] + stp d9, d10, [sp, #80] + stp d11, d12, [sp, #96] + stp d13, d14, [sp, #112] + stp d15, d16, [sp, #128] + stp d17, d18, [sp, #144] + stp d19, d20, [sp, #160] + stp d21, d22, [sp, #176] + stp d23, d24, [sp, #192] + stp d25, d26, [sp, #208] + stp d27, d28, [sp, #224] + stp d29, d30, [sp, #240] + str d31, [sp, #256] // Save core registers. str x0, [sp, #264] @@ -430,22 +431,23 @@ .macro RESTORE_SAVE_EVERYTHING_FRAME // Restore FP registers. - ldp d0, d1, [sp, #8] - ldp d2, d3, [sp, #24] - ldp d4, d5, [sp, #40] - ldp d6, d7, [sp, #56] - ldp d8, d9, [sp, #72] - ldp d10, d11, [sp, #88] - ldp d12, d13, [sp, #104] - ldp d14, d15, [sp, #120] - ldp d16, d17, [sp, #136] - ldp d18, d19, [sp, #152] - ldp d20, d21, [sp, #168] - ldp d22, d23, [sp, #184] - ldp d24, d25, [sp, #200] - ldp d26, d27, [sp, #216] - ldp d28, d29, [sp, #232] - ldp d30, d31, [sp, #248] + ldr d0, [sp, #8] + ldp d1, d2, [sp, #16] + ldp d3, d4, [sp, #32] + ldp d5, d6, [sp, #48] + ldp d7, d8, [sp, #64] + ldp d9, d10, [sp, #80] + ldp d11, d12, [sp, #96] + ldp d13, d14, [sp, #112] + ldp d15, d16, [sp, #128] + ldp d17, d18, [sp, #144] + ldp d19, d20, [sp, #160] + ldp d21, d22, [sp, #176] + ldp d23, d24, [sp, #192] + ldp d25, d26, [sp, #208] + ldp d27, d28, [sp, #224] + ldp d29, d30, [sp, #240] + ldr d31, [sp, #256] // Restore core registers. ldr x0, [sp, #264] |