On Thu, Dec 18, 2014 at 03:33:22PM -0600, Richard Henderson wrote: > -#define FFI390_RET_VOID 0 > -#define FFI390_RET_STRUCT 1 > -#define FFI390_RET_FLOAT 2 > -#define FFI390_RET_DOUBLE 3 > -#define FFI390_RET_INT32 4 > -#define FFI390_RET_INT64 5 > +#define FFI390_RET_DOUBLE 0 > +#define FFI390_RET_FLOAT 1 > +#define FFI390_RET_INT64 2 > +#define FFI390_RET_INT32 3 > +#define FFI390_RET_VOID 4 While we're at renumbering this list of values, if FFI390_RET_INT32 had the value 0, this bit of assembly code would not be necessary for s390x: > + .balign 8 > +# FFI390_RET_INT32 > + # Never used, as we always store type ffi_arg. > + # But the stg above is 6 bytes and we cannot > + # jump around this case, so fall through. > + nop > + nop (See attached patch.) > + ffi_call_SYSV (frame, ret_type & FFI360_RET_MASK, rvalue, fn, closure); ... > +#define FFI360_RET_MASK 7 ^^^ Shouldn't that be "390"? Ciao Dominik ^_^ ^_^ -- Dominik Vogt IBM Germany