diff options
Diffstat (limited to 'gnu/usr.bin/binutils/gdb/config/sparc/tm-sp64.h')
-rw-r--r-- | gnu/usr.bin/binutils/gdb/config/sparc/tm-sp64.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gnu/usr.bin/binutils/gdb/config/sparc/tm-sp64.h b/gnu/usr.bin/binutils/gdb/config/sparc/tm-sp64.h index 740b032e509..21a1d8c2bf6 100644 --- a/gnu/usr.bin/binutils/gdb/config/sparc/tm-sp64.h +++ b/gnu/usr.bin/binutils/gdb/config/sparc/tm-sp64.h @@ -224,7 +224,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ On sparc64, all structs are returned via a pointer. */ #undef USE_STRUCT_CONVENTION -#define USE_STRUCT_CONVENTION(gcc_p, type) 1 +#define USE_STRUCT_CONVENTION(gcc_p, type) \ + (TYPE_LENGTH (type) > 32) /* Store the address of the place in which to copy the structure the subroutine will return. This is called from call_function. */ @@ -293,3 +294,7 @@ get_longjmp_target PARAMS ((CORE_ADDR *)); #define TARGET_WRITE_FP(val) \ sparc64_write_fp(val) + +#undef REG_STRUCT_HAS_ADDR +#define REG_STRUCT_HAS_ADDR(gcc_p, type) \ + (TYPE_LENGTH (type) > 32) |