There was a problem when passing small structures as fixed arguments. The structures that are bigger than 32 bits, but smaller than 64 bits were not left justified properly on MIPS64 big endian. This is fixed by shifting the value to make it left justified when appropriate.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Thanks. Just a couple things on the test case. At the moment, you're fixing both N32 and N64 but you only test N64. Similarly, we should also test that little endian does the right thing in both cases.
test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll | ||
---|---|---|
1 | Nit: There's normally only one dash on -march=... | |
1 | Could you add RUN lines for the little endian N64 case as well as the big/little-endian N32 cases? |
Nit: There's normally only one dash on -march=...