summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp
diff options
context:
space:
mode:
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>2018-03-14 20:34:03 +0000
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>2018-03-14 20:34:03 +0000
commit164560bd74652da1495cb335445ee6ca49957032 (patch)
tree015c10709bf2557a2b614522d9da8e692b7415f3 /lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp
parentffc71c0a194fdcc6074f84fde9de4c7b713ddd80 (diff)
downloadbcm5719-llvm-164560bd74652da1495cb335445ee6ca49957032.tar.gz
bcm5719-llvm-164560bd74652da1495cb335445ee6ca49957032.zip
[AArch64] Emit CSR loads in the same order as stores
Optionally allow the order of restoring the callee-saved registers in the epilogue to be reversed. The flag -reverse-csr-restore-seq generates the following code: ``` stp x26, x25, [sp, #-64]! stp x24, x23, [sp, #16] stp x22, x21, [sp, #32] stp x20, x19, [sp, #48] ; [..] ldp x24, x23, [sp, #16] ldp x22, x21, [sp, #32] ldp x20, x19, [sp, #48] ldp x26, x25, [sp], #64 ret ``` Note how the CSRs are restored in the same order as they are saved. One exception to this rule is the last `ldp`, which allows us to merge the stack adjustment and the ldp into a post-index ldp. This is done by first generating: ldp x26, x27, [sp] add sp, sp, #64 which gets merged by the arm64 load store optimizer into ldp x26, x25, [sp], #64 The flag is disabled by default. llvm-svn: 327569
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud