diff options
Diffstat (limited to 'gcc/config/alpha/vms.h')
-rw-r--r-- | gcc/config/alpha/vms.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h index 06f3dc4ad2f..5bc899abc95 100644 --- a/gcc/config/alpha/vms.h +++ b/gcc/config/alpha/vms.h @@ -136,15 +136,20 @@ Boston, MA 02111-1307, USA. */ #undef INITIAL_ELIMINATION_OFFSET #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ -{ if ((FROM) == FRAME_POINTER_REGNUM) \ - (OFFSET) = alpha_sa_size () + alpha_pv_save_size (); \ - else if ((FROM) == ARG_POINTER_REGNUM) \ - (OFFSET) = (ALPHA_ROUND (alpha_sa_size () + alpha_pv_save_size () \ - + get_frame_size () \ - + current_function_pretend_args_size) \ - - current_function_pretend_args_size); \ - else \ - abort(); \ +{ switch (FROM) \ + { \ + case FRAME_POINTER_REGNUM: \ + (OFFSET) = alpha_sa_size () + alpha_pv_save_size (); \ + break; \ + case ARG_POINTER_REGNUM: \ + (OFFSET) = (ALPHA_ROUND (alpha_sa_size () + alpha_pv_save_size () \ + + get_frame_size () \ + + current_function_pretend_args_size) \ + - current_function_pretend_args_size); \ + break; \ + default: \ + gcc_unreachable (); \ + } \ if ((TO) == STACK_POINTER_REGNUM) \ (OFFSET) += ALPHA_ROUND (current_function_outgoing_args_size); \ } @@ -227,7 +232,7 @@ extern void link_section (void); extern void literals_section (void); #undef ASM_OUTPUT_ADDR_DIFF_ELT -#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) abort () +#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) gcc_unreachable () #undef ASM_OUTPUT_ADDR_VEC_ELT #define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ |