diff options
Diffstat (limited to 'llvm/lib/Target/M68k/M68kTargetMachine.cpp')
| -rw-r--r-- | llvm/lib/Target/M68k/M68kTargetMachine.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/M68k/M68kTargetMachine.cpp b/llvm/lib/Target/M68k/M68kTargetMachine.cpp index 5b8fd3d41b14..cb7d8f8b25e3 100644 --- a/llvm/lib/Target/M68k/M68kTargetMachine.cpp +++ b/llvm/lib/Target/M68k/M68kTargetMachine.cpp @@ -49,10 +49,14 @@ std::string computeDataLayout(const Triple &TT, StringRef CPU, // FIXME how to wire it with the used object format? Ret += "-m:e"; - // M68k pointers are always 32 bit wide even for 16 bit cpus - Ret += "-p:32:32"; + // M68k pointers are always 32 bit wide even for 16-bit CPUs. + // The ABI only specifies 16-bit alignment. + // On at least the 68020+ with a 32-bit bus, there is a performance benefit + // to having 32-bit alignment. + Ret += "-p:32:16:32"; - // M68k requires i8 to align on 2 byte boundry + // Bytes do not require special alignment, words are word aligned and + // long words are word aligned at minimum. Ret += "-i8:8:8-i16:16:16-i32:16:32"; // FIXME no floats at the moment |
