* config/tc-m32c.c (m32c_cons_fix_new): New. Added to support 3

byte relocs.
* config/tc-m32c.h (TC_CONS_FIX_NEW): Define.
(m32c_cons_fix_new): Prototype.
This commit is contained in:
DJ Delorie 2007-02-04 04:45:36 +00:00
parent 76d95df787
commit e110eeb74e
3 changed files with 42 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2007-02-03 DJ Delorie <dj@delorie.com>
* config/tc-m32c.c (m32c_cons_fix_new): New. Added to support 3
byte relocs.
* config/tc-m32c.h (TC_CONS_FIX_NEW): Define.
(m32c_cons_fix_new): Prototype.
2007-02-02 Bob Wilson <bob.wilson@acm.org>
* config/tc-xtensa.c (xg_build_to_insn): Use tinsn_init.

View File

@ -1018,6 +1018,37 @@ md_cgen_lookup_reloc (const CGEN_INSN * insn ATTRIBUTE_UNUSED,
return BFD_RELOC_NONE;
}
void
m32c_cons_fix_new (fragS * frag,
int where,
int size,
expressionS *exp)
{
bfd_reloc_code_real_type type;
switch (size)
{
case 1:
type = BFD_RELOC_8;
break;
case 2:
type = BFD_RELOC_16;
break;
case 3:
type = BFD_RELOC_24;
break;
case 4:
default:
type = BFD_RELOC_32;
break;
case 8:
type = BFD_RELOC_64;
break;
}
fix_new_exp (frag, where, (int) size, exp, 0, type);
}
void
m32c_apply_fix (struct fix *f, valueT *t, segT s)
{

View File

@ -57,6 +57,10 @@ extern bfd_boolean m32c_fix_adjustable PARAMS ((struct fix *));
#define TC_FORCE_RELOCATION(fix) m32c_force_relocation (fix)
extern int m32c_force_relocation PARAMS ((struct fix *));
#define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP) \
m32c_cons_fix_new (FRAG, WHERE, NBYTES, EXP)
extern void m32c_cons_fix_new (fragS *, int, int, expressionS *);
extern const struct relax_type md_relax_table[];
#define TC_GENERIC_RELAX_TABLE md_relax_table