DJ Delorie - Re: [mn10300] return-in-a0-d0 ABI helper (original) (raw)

This is the mail archive of the gcc-patches@gcc.gnu.orgmailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

This situation is precisely why we support PARALLELs for return values (the need to return a value in multiple registers).

It ought to "just work".

It just didn't.

../../gcc/gcc/testsuite/gcc.c-torture/compile/20000804-1.c:16: error: unrecognizable insn: (insn 77 90 82 7 (set (parallel/i:SI [ (expr_list:REG_DEP_TRUE (reg:SI 4 a0) (const_int 0 [0x0])) (expr_list:REG_DEP_TRUE (reg:SI 0 d0) (const_int 0 [0x0])) ]) (reg/f:SI 71 [ D.1210 ])) -1 (nil) (nil))

If I manually try all the permutations of caller/callee/int/pointer, they all work, and the code looks reasonable. Relevent portions of the patch attached - see any obvious mistakes in it?

+/* Return the location of the function's value. This will be either

#define FUNCTION_VALUE(VALTYPE, FUNC) \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]