jrtc27 added inline comments.

================
Comment at: clang/lib/Basic/Targets/M68k.cpp:38-50
+  // M68k pointers are always 32 bit wide even for 16 bit cpus
+  Layout += "-p:32:32";
+
+  // M68k integer data types
+  Layout += "-i8:8:8-i16:16:16-i32:32:32";
+
+  // FIXME no floats at the moment
----------------
If we're in SysV psABI land, then the stack is 32-bit aligned.

If we're in actual ABI used by everyone out there, i.e. GCC's default, then 
it's only 16-bit aligned, and your integer types also have the wrong alignment, 
so you will get ABI incompatibility with GCC-built binaries as provided by 
distributions like Debian.


================
Comment at: clang/lib/Basic/Targets/M68k.cpp:63
+            .Case("generic", CK_68000)
+            .Case("M68000", CK_68000)
+            .Case("M68010", CK_68010)
----------------
GCC's -mcpu excludes any M prefix and is just the number.


================
Comment at: clang/lib/Basic/Targets/M68k.cpp:77-79
+  Builder.defineMacro("M68k");
+  Builder.defineMacro("__M68k__");
+  Builder.defineMacro("__M68K__");
----------------
Where are these coming from? GCC only defines `__m68k__`.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88393/new/

https://reviews.llvm.org/D88393

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to