diff options
author | Alexandre Rames <alexandre.rames@linaro.org> | 2016-07-15 17:41:13 +0100 |
---|---|---|
committer | Alexandre Rames <alexandre.rames@linaro.org> | 2016-07-18 11:25:19 +0100 |
commit | 68bd9b9b165ffca1a49b80bb437ce9f87b738264 (patch) | |
tree | 671bb60203157fdb34dd2e9cdf851cb79eb02a0e /compiler/optimizing/code_generator.h | |
parent | 173f435e56acfd0501fc460747572a4796dcffe0 (diff) |
ARM64: Improve code generated to spill/restore for slow paths.
Aligning the accesses allows generating better code.
Before:
add x16, sp, #0x44 (68)
stp x0, x1, [x16, #-16]
After:
stp x0, x1, [sp, #56]
Change-Id: I3e20ad3fa59d00aee4b4d14ea9d59c7cd546509e
Diffstat (limited to 'compiler/optimizing/code_generator.h')
-rw-r--r-- | compiler/optimizing/code_generator.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h index b8540baca2..47e6625d07 100644 --- a/compiler/optimizing/code_generator.h +++ b/compiler/optimizing/code_generator.h @@ -211,6 +211,8 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> { size_t maximum_number_of_live_fpu_registers, size_t number_of_out_slots, const ArenaVector<HBasicBlock*>& block_order); + // Backends can override this as necessary. For most, no special alignment is required. + virtual uint32_t GetPreferredSlotsAlignment() const { return 1; } uint32_t GetFrameSize() const { return frame_size_; } void SetFrameSize(uint32_t size) { frame_size_ = size; } |