diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-02 04:57:47 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-02 04:57:47 +0000 |
commit | d9b1ff5b1a6de47dab0a4da2991ff4d2196de212 (patch) | |
tree | 1d04e1233f03f836fa8708f2a315b1ba2834a01c /gcc/config/frv/frv.h | |
parent | 05036ed04e63a8f6e91120bae3cd420570831366 (diff) | |
download | gcc-d9b1ff5b1a6de47dab0a4da2991ff4d2196de212.tar.gz |
* 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
Diffstat (limited to 'gcc/config/frv/frv.h')
-rw-r--r-- | gcc/config/frv/frv.h | 6 |
1 files changed, 4 insertions, 2 deletions
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, \ |