llvm.org GIT mirror llvm / aa3637a
Merging r197572: ------------------------------------------------------------------------ r197572 | rafael.espindola | 2013-12-18 09:35:37 -0500 (Wed, 18 Dec 2013) | 6 lines One ppc32-darwin, a i64 inside a structure can have 32 bit alignment. Thanks for Iain Sandoe for testing this with the original gcc. Clang was already getting this right. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@205766 91177308-0d34-0410-b5e6-96231b3b80d8 Tom Stellard 6 years ago
2 changed file(s) with 4 addition(s) and 3 deletion(s). Raw diff Collapse all Expand all
4747
4848 // Note, the alignment values for f64 and i64 on ppc64 in Darwin
4949 // documentation are wrong; these are correct (i.e. "what gcc does").
50 Ret += "-f64:64:64-i64:64:64";
50 if (ST.isPPC64() || ST.isSVR4ABI())
51 Ret += "-f64:64:64-i64:64:64";
5152
5253 // Set support for 128 floats depending on the ABI.
5354 if (ST.isPPC64() && ST.isSVR4ABI()) {
118118 ; CHECK: ld 3, -[[OFFSET1]](1)
119119
120120 ; DARWIN32: _func3:
121 ; DARWIN32: addi r[[REG1:[0-9]+]], r[[REGSP:[0-9]+]], 40
121 ; DARWIN32: addi r[[REG1:[0-9]+]], r[[REGSP:[0-9]+]], 36
122122 ; DARWIN32: addi r[[REG2:[0-9]+]], r[[REGSP]], 24
123 ; DARWIN32: lwz r[[REG3:[0-9]+]], 48(r[[REGSP]])
123 ; DARWIN32: lwz r[[REG3:[0-9]+]], 44(r[[REGSP]])
124124 ; DARWIN32: lwz r[[REG4:[0-9]+]], 32(r[[REGSP]])
125125 ; DARWIN32: cmplw cr{{[0-9]+}}, r[[REG4]], r[[REG3]]
126126 ; DARWIN32: stw r[[REG3]], -[[OFFSET1:[0-9]+]]