Commit 96c30d2a by Bernd Schmidt Committed by Bernd Schmidt

bfin.md (call_value_symbol, [...]): Disallow if TARGET_ID_SHARED_LIBRARY, not if flag_pic.

	* config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
	call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
	not if flag_pic.
	Lose 'G' modifier for call operand.
	* config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
	recognize 'G' modifier.

From-SVN: r112010
parent 4af990cd
...@@ -7,6 +7,13 @@ ...@@ -7,6 +7,13 @@
* config/bfin/crti.S: Use it instead of __PIC__. * config/bfin/crti.S: Use it instead of __PIC__.
* config/bfin/crtn.S: Likewise. * config/bfin/crtn.S: Likewise.
* config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
not if flag_pic.
Lose 'G' modifier for call operand.
* config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
recognize 'G' modifier.
2006-03-13 Eric Botcazou <ebotcazou@adacore.com> 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/18859 PR middle-end/18859
......
...@@ -1264,8 +1264,6 @@ print_operand (FILE *file, rtx x, char code) ...@@ -1264,8 +1264,6 @@ print_operand (FILE *file, rtx x, char code)
case SYMBOL_REF: case SYMBOL_REF:
output_addr_const (file, x); output_addr_const (file, x);
if (code == 'G' && flag_pic)
fprintf (file, "@GOT");
break; break;
case CONST_DOUBLE: case CONST_DOUBLE:
......
...@@ -1362,10 +1362,10 @@ ...@@ -1362,10 +1362,10 @@
(match_operand 1 "general_operand" "g")) (match_operand 1 "general_operand" "g"))
(use (match_operand 2 "" ""))] (use (match_operand 2 "" ""))]
"! SIBLING_CALL_P (insn) "! SIBLING_CALL_P (insn)
&& !flag_pic && !TARGET_ID_SHARED_LIBRARY
&& GET_CODE (operands[0]) == SYMBOL_REF && GET_CODE (operands[0]) == SYMBOL_REF
&& !bfin_longcall_p (operands[0], INTVAL (operands[2]))" && !bfin_longcall_p (operands[0], INTVAL (operands[2]))"
"call %G0;" "call %0;"
[(set_attr "type" "call") [(set_attr "type" "call")
(set_attr "length" "4")]) (set_attr "length" "4")])
...@@ -1375,10 +1375,10 @@ ...@@ -1375,10 +1375,10 @@
(use (match_operand 2 "" "")) (use (match_operand 2 "" ""))
(return)] (return)]
"SIBLING_CALL_P (insn) "SIBLING_CALL_P (insn)
&& !flag_pic && !TARGET_ID_SHARED_LIBRARY
&& GET_CODE (operands[0]) == SYMBOL_REF && GET_CODE (operands[0]) == SYMBOL_REF
&& !bfin_longcall_p (operands[0], INTVAL (operands[2]))" && !bfin_longcall_p (operands[0], INTVAL (operands[2]))"
"jump.l %G0;" "jump.l %0;"
[(set_attr "type" "br") [(set_attr "type" "br")
(set_attr "length" "4")]) (set_attr "length" "4")])
...@@ -1388,10 +1388,10 @@ ...@@ -1388,10 +1388,10 @@
(match_operand 2 "general_operand" "g"))) (match_operand 2 "general_operand" "g")))
(use (match_operand 3 "" ""))] (use (match_operand 3 "" ""))]
"! SIBLING_CALL_P (insn) "! SIBLING_CALL_P (insn)
&& !flag_pic && !TARGET_ID_SHARED_LIBRARY
&& GET_CODE (operands[1]) == SYMBOL_REF && GET_CODE (operands[1]) == SYMBOL_REF
&& !bfin_longcall_p (operands[1], INTVAL (operands[3]))" && !bfin_longcall_p (operands[1], INTVAL (operands[3]))"
"call %G1;" "call %1;"
[(set_attr "type" "call") [(set_attr "type" "call")
(set_attr "length" "4")]) (set_attr "length" "4")])
...@@ -1402,10 +1402,10 @@ ...@@ -1402,10 +1402,10 @@
(use (match_operand 3 "" "")) (use (match_operand 3 "" ""))
(return)] (return)]
"SIBLING_CALL_P (insn) "SIBLING_CALL_P (insn)
&& !flag_pic && !TARGET_ID_SHARED_LIBRARY
&& GET_CODE (operands[1]) == SYMBOL_REF && GET_CODE (operands[1]) == SYMBOL_REF
&& !bfin_longcall_p (operands[1], INTVAL (operands[3]))" && !bfin_longcall_p (operands[1], INTVAL (operands[3]))"
"jump.l %G1;" "jump.l %1;"
[(set_attr "type" "br") [(set_attr "type" "br")
(set_attr "length" "4")]) (set_attr "length" "4")])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment