aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>1998-11-17 23:28:19 +0000
committerNick Clifton <nickc@redhat.com>1998-11-17 23:28:19 +0000
commit2ca484a7113afb242187adb48d11d6b212b7833e (patch)
tree0b820c94a9829e138c69cf7e480e9259bb5ca71c /gas/config
parenta88a845a873419d7491dc7f4bde6880e1a69ddc2 (diff)
downloadgdb-2ca484a7113afb242187adb48d11d6b212b7833e.zip
gdb-2ca484a7113afb242187adb48d11d6b212b7833e.tar.gz
gdb-2ca484a7113afb242187adb48d11d6b212b7833e.tar.bz2
Fixed reloc generation to match latest opcoide list from cgen.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-fr30.c42
1 files changed, 19 insertions, 23 deletions
diff --git a/gas/config/tc-fr30.c b/gas/config/tc-fr30.c
index 95f1a26..4f07263 100644
--- a/gas/config/tc-fr30.c
+++ b/gas/config/tc-fr30.c
@@ -453,13 +453,17 @@ md_cgen_lookup_reloc (insn, operand, fixP)
{
switch (CGEN_OPERAND_TYPE (operand))
{
- case FR30_OPERAND_PC : return BFD_RELOC_FR30_12_PCREL;
- case FR30_OPERAND_RI :
- case FR30_OPERAND_RJ :
- case FR30_OPERAND_NBIT :
- case FR30_OPERAND_VBIT :
- case FR30_OPERAND_ZBIT :
- case FR30_OPERAND_CBIT :
+ case FR30_OPERAND_LABEL9: fixP->fx_pcrel = 1; return BFD_RELOC_FR30_9_PCREL;
+ case FR30_OPERAND_LABEL12: fixP->fx_pcrel = 1; return BFD_RELOC_FR30_12_PCREL;
+ case FR30_OPERAND_DISP10: return BFD_RELOC_FR30_10_IN_8;
+ case FR30_OPERAND_DISP9: return BFD_RELOC_FR30_9_IN_8;
+ case FR30_OPERAND_DISP8: return BFD_RELOC_FR30_8_IN_8;
+ case FR30_OPERAND_UDISP6: return BFD_RELOC_FR30_6_IN_4;
+ case FR30_OPERAND_I8: return BFD_RELOC_8;
+ /* waiting for these to be defined by Dave....
+ case FR30_OPERAND_I20: return BFD_RELOC_FR30_20;
+ case FR30_OPERAND_I30: return BFD_RELOC_32;
+ */
default : /* avoid -Wall warning */
break;
}
@@ -601,9 +605,9 @@ fr30_is_colon_insn (start)
static char * delay_insns [] =
{
"call", "jmp", "ret", "bra", "bno",
- "beq", "bne", "bc", "bnc", "bn", "bp",
- "bv", "bnv", "blt", "bge", "ble", "bgt",
- "bls", "bhi"
+ "beq", "bne", "bc", "bnc", "bn",
+ "bp", "bv", "bnv", "blt", "bge",
+ "ble", "bgt", "bls", "bhi"
};
for (i = sizeof (delay_insns) / sizeof (delay_insns[0]); i--;)
@@ -615,10 +619,8 @@ fr30_is_colon_insn (start)
continue;
while (len --)
- {
- if (tolower (start [len]) != insn [len])
- break;
- }
+ if (tolower (start [len]) != insn [len])
+ break;
if (len == -1)
return restore_colon (1);
@@ -631,21 +633,15 @@ fr30_is_colon_insn (start)
/* Check to see if the text following the colon is '8' */
if (i_l_p[1] == '8' && (i_l_p[2] == ' ' || i_l_p[2] == '\t'))
- {
- return restore_colon (2);
- }
+ return restore_colon (2);
/* Check to see if the text following the colon is '20' */
else if (i_l_p[1] == '2' && i_l_p[2] =='0' && (i_l_p[3] == ' ' || i_l_p[3] == '\t'))
- {
- return restore_colon (3);
- }
+ return restore_colon (3);
/* Check to see if the text following the colon is '32' */
else if (i_l_p[1] == '3' && i_l_p[2] =='2' && (i_l_p[3] == ' ' || i_l_p[3] == '\t'))
- {
- return restore_colon (3);
- }
+ return restore_colon (3);
return 0;
}