diff options
Diffstat (limited to 'gcc/config/mmix/mmix.c')
-rw-r--r-- | gcc/config/mmix/mmix.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c index 7506003c9b9..966b503589c 100644 --- a/gcc/config/mmix/mmix.c +++ b/gcc/config/mmix/mmix.c @@ -130,6 +130,8 @@ static void mmix_target_asm_function_prologue static void mmix_target_asm_function_end_prologue PARAMS ((FILE *)); static void mmix_target_asm_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT)); +static void mmix_asm_output_mi_thunk + PARAMS ((FILE *, tree, HOST_WIDE_INT, tree)); /* Target structure macros. Listed by node. See `Using and Porting GCC' @@ -162,6 +164,9 @@ static void mmix_target_asm_function_epilogue #undef TARGET_STRIP_NAME_ENCODING #define TARGET_STRIP_NAME_ENCODING mmix_strip_name_encoding +#undef TARGET_ASM_OUTPUT_MI_THUNK +#define TARGET_ASM_OUTPUT_MI_THUNK mmix_asm_output_mi_thunk + struct gcc_target targetm = TARGET_INITIALIZER; /* Functions that are expansions for target macros. @@ -770,13 +775,13 @@ mmix_target_asm_function_epilogue (stream, locals_size) fputc ('\n', stream); } -/* ASM_OUTPUT_MI_THUNK. */ +/* TARGET_ASM_OUTPUT_MI_THUNK. */ -void +static void mmix_asm_output_mi_thunk (stream, fndecl, delta, func) FILE * stream; tree fndecl ATTRIBUTE_UNUSED; - int delta; + HOST_WIDE_INT delta; tree func; { /* If you define STRUCT_VALUE to 0, rather than use STRUCT_VALUE_REGNUM, @@ -785,9 +790,9 @@ mmix_asm_output_mi_thunk (stream, fndecl, delta, func) const char *regname = reg_names[MMIX_FIRST_INCOMING_ARG_REGNUM]; if (delta >= 0 && delta < 65536) - fprintf (stream, "\tINCL %s,%d\n", regname, delta); + fprintf (stream, "\tINCL %s,%d\n", regname, (int)delta); else if (delta < 0 && delta >= -255) - fprintf (stream, "\tSUBU %s,%s,%d\n", regname, regname, -delta); + fprintf (stream, "\tSUBU %s,%s,%d\n", regname, regname, (int)-delta); else { mmix_output_register_setting (stream, 255, delta, 1); |