aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-avr.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2006-01-11 17:39:50 +0000
committerNick Clifton <nickc@redhat.com>2006-01-11 17:39:50 +0000
commit8ad7c533ee497f2c6a16cde705a565fcb97dfd12 (patch)
tree4f07010b3a8fe3d453dd641837800058e2cd2c4f /gas/config/tc-avr.c
parent5cd1580898b80c549ab78626bb55e912d5eea214 (diff)
downloadgdb-8ad7c533ee497f2c6a16cde705a565fcb97dfd12.zip
gdb-8ad7c533ee497f2c6a16cde705a565fcb97dfd12.tar.gz
gdb-8ad7c533ee497f2c6a16cde705a565fcb97dfd12.tar.bz2
Fixes for building on 64-bit hosts:
* config/tc-avr.c (mod_index): New union to allow conversion between pointers and integers. (md_begin, avr_ldi_expression): Use it. * config/tc-i370.c (md_assemble): Add cast for argument to print statement. * config/tc-tic54x.c (subsym_substitute): Likewise. * config/tc-mn10200.c (md_assemble): Use a union to convert the opindex field of fr_cgen structure into a pointer so that it can be stored in a frag. * config/tc-mn10300.c (md_assemble): Likewise. * config/tc-frv.c (frv_debug_tomcat): Use %p to print pointer types. * config/tc-v850.c: Replace uses of (int) casts with correct types. * gas/tic54x/address.d: Work with 64bit hosts. * gas/tic54x/addrfar.d: Likewise. * gas/tic54x/align.d: Likewise. * gas/tic54x/all-opcodes.d: Likewise. * gas/tic54x/asg.d: Likewise. * gas/tic54x/cons.d: Likewise. * gas/tic54x/consfar.d: Likewise. * gas/tic54x/extaddr.d: Likewise. * gas/tic54x/field.d: Likewise. * gas/tic54x/labels.d: Likewise. * gas/tic54x/loop.d: Likewise. * gas/tic54x/lp.d: Likewise. * gas/tic54x/macro.d: Likewise. * gas/tic54x/math.d: Likewise. * gas/tic54x/opcodes.d: Likewise. * gas/tic54x/sections.d: Likewise. * gas/tic54x/set.d: Likewise. * gas/tic54x/struct.d: Likewise. * gas/tic54x/subsym.d: Likewise.
Diffstat (limited to 'gas/config/tc-avr.c')
-rw-r--r--gas/config/tc-avr.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index 74cc6c3..2ceaa1f 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -1,6 +1,6 @@
/* tc-avr.c -- Assembler code for the ATMEL AVR
- Copyright 1999, 2000, 2001, 2002, 2004, 2005
+ Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2006
Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
@@ -174,6 +174,14 @@ static struct exp_mod_s exp_mod[] =
{"hhi8", -BFD_RELOC_AVR_HI8_LDI, -BFD_RELOC_AVR_HI8_LDI_NEG, 0},
};
+/* A union used to store indicies into the exp_mod[] array
+ in a hash table which expects void * data types. */
+typedef union
+{
+ void * ptr;
+ int index;
+} mod_index;
+
/* Opcode hash table. */
static struct hash_control *avr_hash;
@@ -426,7 +434,12 @@ md_begin (void)
avr_mod_hash = hash_new ();
for (i = 0; i < ARRAY_SIZE (exp_mod); ++i)
- hash_insert (avr_mod_hash, EXP_MOD_NAME (i), (void *) (i + 10));
+ {
+ mod_index m;
+
+ m.index = i + 10;
+ hash_insert (avr_mod_hash, EXP_MOD_NAME (i), m.ptr);
+ }
bfd_set_arch_mach (stdoutput, TARGET_ARCH, avr_mcu->mach);
}
@@ -509,7 +522,10 @@ avr_ldi_expression (expressionS *exp)
if (op[0])
{
- mod = (int) hash_find (avr_mod_hash, op);
+ mod_index m;
+
+ m.ptr = hash_find (avr_mod_hash, op);
+ mod = m.index;
if (mod)
{