Fix bugs in last changes

From-SVN: r11103
This commit is contained in:
Michael Meissner 1996-01-25 20:33:51 +00:00
parent 154079fee5
commit a54d04b7dd
2 changed files with 20 additions and 9 deletions

View File

@ -857,6 +857,11 @@ small_data_operand (op, mode)
{
rtx sym_ref, const_part;
#ifdef TARGET_SDATA
if (!TARGET_SDATA)
return 0;
#endif
if (DEFAULT_ABI != ABI_V4)
return 0;
@ -2086,9 +2091,11 @@ print_operand (file, x, code)
we have already done it, we can just use an offset of four. */
if (GET_CODE (XEXP (x, 0)) == PRE_INC
|| GET_CODE (XEXP (x, 0)) == PRE_DEC)
print_operand_address (file, plus_constant (XEXP (XEXP (x, 0), 0), 4));
output_address (plus_constant (XEXP (XEXP (x, 0), 0), 4));
else
print_operand_address (file, plus_constant (XEXP (x, 0), 4));
output_address (plus_constant (XEXP (x, 0), 4));
if (DEFAULT_ABI == ABI_V4 && small_data_operand (x, GET_MODE (x)))
fprintf (file, "@sda21(%s)", reg_names[0]);
}
return;
@ -2296,9 +2303,11 @@ print_operand (file, x, code)
{
if (GET_CODE (XEXP (x, 0)) == PRE_INC
|| GET_CODE (XEXP (x, 0)) == PRE_DEC)
print_operand_address (file, plus_constant (XEXP (XEXP (x, 0), 0), 8));
output_address (plus_constant (XEXP (XEXP (x, 0), 0), 8));
else
print_operand_address (file, plus_constant (XEXP (x, 0), 8));
output_address (plus_constant (XEXP (x, 0), 8));
if (DEFAULT_ABI == ABI_V4 && small_data_operand (x, GET_MODE (x)))
fprintf (file, "@sda21(%s)", reg_names[0]);
}
return;
@ -2342,9 +2351,11 @@ print_operand (file, x, code)
{
if (GET_CODE (XEXP (x, 0)) == PRE_INC
|| GET_CODE (XEXP (x, 0)) == PRE_DEC)
print_operand_address (file, plus_constant (XEXP (XEXP (x, 0), 0), 12));
output_address (plus_constant (XEXP (XEXP (x, 0), 0), 12));
else
print_operand_address (file, plus_constant (XEXP (x, 0), 12));
output_address (plus_constant (XEXP (x, 0), 12));
if (DEFAULT_ABI == ABI_V4 && small_data_operand (x, GET_MODE (x)))
fprintf (file, "@sda21(%s)", reg_names[0]);
}
return;
@ -2362,10 +2373,10 @@ print_operand (file, x, code)
fprintf (file, "%d(%d)", - GET_MODE_SIZE (GET_MODE (x)),
REGNO (XEXP (XEXP (x, 0), 0)));
else
print_operand_address (file, XEXP (x, 0));
output_address (XEXP (x, 0));
}
else
print_operand_address (file, x);
output_addr_const (file, x);
return;
default:

View File

@ -4733,7 +4733,7 @@
/* Use default pattern for address of ELF small data */
if (TARGET_ELF
&& TARGET_SDATA
&& DEFAULT_ABI == ABI_V4
&& (GET_CODE (operands[1]) == SYMBOL_REF || GET_CODE (operands[1]) == CONST)
&& !small_data_operand (operands[1], SImode))
{