From 8a286f570ccd41db81f74ea7f248da62241d898a Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Sat, 16 Mar 2013 08:01:19 -0400 Subject: [PATCH] Fix for m68000 systems --- ChangeLog | 5 +++++ README | 1 + src/m68k/sysv.S | 12 ++++++++++++ 3 files changed, 18 insertions(+) diff --git a/ChangeLog b/ChangeLog index 525e5185..b4273ded 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-03-16 Alan Hourihane + + * src/m68k/sysv.S (epilogue): Don't user extb instruction on + m680000 machines. + 2013-03-16 Alex Gaynor * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack. diff --git a/README b/README index 250c515f..fd5e6b42 100644 --- a/README +++ b/README @@ -168,6 +168,7 @@ See the ChangeLog files for details. Add Meta support. Add missing Moxie bits. Fix stack alignment bug on 32-bit x86. + Build fix for m68000 targets. 3.0.12 Feb-11-13 Add Moxie support. diff --git a/src/m68k/sysv.S b/src/m68k/sysv.S index 9504c6a6..ec2b14f3 100644 --- a/src/m68k/sysv.S +++ b/src/m68k/sysv.S @@ -176,7 +176,13 @@ retstruct2: retsint8: btst #8,%d2 jbeq retsint16 + | NOTE: On the mc68000, extb is not supported. 8->16, then 16->32. +#if !defined(__mc68020__) && !defined(__mc68030__) && !defined(__mc68040__) && !defined(__mc68060__) && !defined(__mcoldfire__) + ext.w %d0 + ext.l %d0 +#else extb.l %d0 +#endif move.l %d0,(%a1) jbra epilogue @@ -279,7 +285,13 @@ CALLFUNC(ffi_closure_SYSV): jra .Lcls_epilogue .Lcls_ret_sint8: move.l (%a0),%d0 + | NOTE: On the mc68000, extb is not supported. 8->16, then 16->32. +#if !defined(__mc68020__) && !defined(__mc68030__) && !defined(__mc68040__) && !defined(__mc68060__) && !defined(__mcoldfire__) + ext.w %d0 + ext.l %d0 +#else extb.l %d0 +#endif jra .Lcls_epilogue 1: | CIF_FLAGS_SINT16