summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMCallingConv.td
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-08-06 15:35:32 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-08-06 15:35:32 +0000
commit027d5bcf898dd6e3edc83fd3a5ddac3e0e94c0af (patch)
treeae433fdfe70428236d77708e2d1e3a27df4266a7 /llvm/lib/Target/ARM/ARMCallingConv.td
parenta49ccfeeb2052dfc8dd5b9b200d3884d7e6afa02 (diff)
downloadbcm5719-llvm-027d5bcf898dd6e3edc83fd3a5ddac3e0e94c0af.tar.gz
bcm5719-llvm-027d5bcf898dd6e3edc83fd3a5ddac3e0e94c0af.zip
Fix eabi calling convention when a 64 bit value shadows r3.
Without this what was happening was: * R3 is not marked as "used" * ARM backend thinks it has to save it to the stack because of vaarg * Offset computation correctly ignores it * Offsets are wrong llvm-svn: 110446
Diffstat (limited to 'llvm/lib/Target/ARM/ARMCallingConv.td')
-rw-r--r--llvm/lib/Target/ARM/ARMCallingConv.td2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMCallingConv.td b/llvm/lib/Target/ARM/ARMCallingConv.td
index 8fdb07f8162..5c5100fcd1c 100644
--- a/llvm/lib/Target/ARM/ARMCallingConv.td
+++ b/llvm/lib/Target/ARM/ARMCallingConv.td
@@ -68,7 +68,7 @@ def CC_ARM_AAPCS_Common : CallingConv<[
"ArgFlags.getOrigAlign() != 8",
CCAssignToReg<[R0, R1, R2, R3]>>>,
- CCIfType<[i32], CCIfAlign<"8", CCAssignToStack<4, 8>>>,
+ CCIfType<[i32], CCIfAlign<"8", CCAssignToStackWithShadow<4, 8, R3>>>,
CCIfType<[i32, f32], CCAssignToStack<4, 4>>,
CCIfType<[f64], CCAssignToStack<8, 8>>,
CCIfType<[v2f64], CCAssignToStack<16, 8>>
OpenPOWER on IntegriCloud