From d9b1ff5b1a6de47dab0a4da2991ff4d2196de212 Mon Sep 17 00:00:00 2001 From: aoliva Date: Sun, 2 May 2004 04:57:47 +0000 Subject: * config/frv/frv-protos.h (frv_expand_epilogue, frv_expand_fdpic_call): Add bool argument. * config/frv/frv.c (frv_function_ok_for_sibcall): New. (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it. (frv_expand_epilogue): Use new argument to decide whether to emit return instruction or copy the return address to LR. (frv_expand_fdpic_call): Inline PLT entry when emitting direct sibcalls. (sibcall_operand): New. * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match PLUS nor LABEL_REF. Add sibcall_operand. * config/frv/frv.md (call, call_value): Pass false to frv_expand_fdpic_call. (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll. (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value, sibcall_value_internal, sibcall_value_fdpicdi): New. (return_unsigned_true, return_unsigned_false): New. (epilogue): Adjust call to frv_expand_epilogue. (sibcall_epilogue): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81405 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/frv/frv.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gcc/config/frv/frv.h') diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h index 438fbfef488..e6baec07973 100644 --- a/gcc/config/frv/frv.h +++ b/gcc/config/frv/frv.h @@ -3111,8 +3111,10 @@ do { \ { "odd_fpr_operand", { REG, SUBREG }}, \ { "dbl_memory_one_insn_operand", { MEM }}, \ { "dbl_memory_two_insn_operand", { MEM }}, \ - { "call_operand", { REG, SUBREG, PLUS, CONST_INT, \ - SYMBOL_REF, LABEL_REF, CONST }}, \ + { "call_operand", { REG, SUBREG, CONST_INT, \ + CONST, SYMBOL_REF }}, \ + { "sibcall_operand", { REG, SUBREG, CONST_INT, \ + CONST }}, \ { "upper_int16_operand", { CONST_INT }}, \ { "uint16_operand", { CONST_INT }}, \ { "relational_operator", { EQ, NE, LE, LT, GE, GT, \ -- cgit v1.2.1