diff options
| -rw-r--r-- | runtime/arch/arm/quick_entrypoints_arm.S | 2 | ||||
| -rw-r--r-- | runtime/arch/arm64/quick_entrypoints_arm64.S | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/runtime/arch/arm/quick_entrypoints_arm.S b/runtime/arch/arm/quick_entrypoints_arm.S index c4ec72685f..11357b5596 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 {d0-d15} @ 32 words of float args. + vpush {d0-d15} @ 32 words, 2 for each of the 16 saved doubles. .cfi_adjust_cfa_offset 128 sub sp, #8 @ 2 words of space, alignment padding and Method* .cfi_adjust_cfa_offset 8 diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S index 4289cabbc6..3e6fbaf64b 100644 --- a/runtime/arch/arm64/quick_entrypoints_arm64.S +++ b/runtime/arch/arm64/quick_entrypoints_arm64.S @@ -331,6 +331,7 @@ #endif // Save FP registers. + // For better performance, store d0 and d31 separately, so that all STPs are 16-byte aligned. str d0, [sp, #8] stp d1, d2, [sp, #16] stp d3, d4, [sp, #32] @@ -431,6 +432,7 @@ .macro RESTORE_SAVE_EVERYTHING_FRAME // Restore FP registers. + // For better performance, load d0 and d31 separately, so that all LDPs are 16-byte aligned. ldr d0, [sp, #8] ldp d1, d2, [sp, #16] ldp d3, d4, [sp, #32] |