diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-07-11 04:01:49 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-07-11 04:01:49 +0000 |
| commit | a76eccf81586c622f44caec162ef31aa0ccc8293 (patch) | |
| tree | 9a7c0f5f06d567746ab5229aa7e3e94dc444c7a7 /llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | |
| parent | 4a52e2f6a71b7a6f83ffb90564cd429a9390b467 (diff) | |
| download | bcm5719-llvm-a76eccf81586c622f44caec162ef31aa0ccc8293.tar.gz bcm5719-llvm-a76eccf81586c622f44caec162ef31aa0ccc8293.zip | |
Fix va_arg for doubles. With this patch VAARG nodes always contain the
correct alignment information, which simplifies ExpandRes_VAARG a bit.
The patch introduces a new alignment information to TargetLoweringInfo. This is
needed since the two natural candidates cannot be used:
* The 's' in target data: If this is set to the minimal alignment of any
argument, getCallFrameTypeAlignment would return 4 for doubles on ARM for
example.
* The getTransientStackAlignment method. It is possible for an architecture to
have argument less aligned than what we maintain the stack pointer.
llvm-svn: 108072
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp index a9a7e5054b7..4f3866956ca 100644 --- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -580,6 +580,7 @@ TargetLowering::TargetLowering(const TargetMachine &tm, JumpBufSize = 0; JumpBufAlignment = 0; PrefLoopAlignment = 0; + MinStackArgumentAlignment = 1; ShouldFoldAtomicFences = false; InitLibcallNames(LibcallRoutineNames); |

