summaryrefslogtreecommitdiff
path: root/opcodes/ia64-gen.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2005-11-23 04:58:37 +0000
committerJim Wilson <wilson@tuliptree.org>2005-11-23 04:58:37 +0000
commit8bcbe394ab5e093cac3da70f67d429a5038e7016 (patch)
tree81b15ffe85a6b70226326ac6b04bee69301206bd /opcodes/ia64-gen.c
parent4208bd97ceb520dd2673798dc1a41f9dba661e9d (diff)
downloadbinutils-redhat-8bcbe394ab5e093cac3da70f67d429a5038e7016.tar.gz
Fix 32-bit host/target --enable-targets=all build failure from Doug Evans.
* ia64-gen.c (_opcode_int64_low, _opcode_int64_high, opcode_fprintf_vma): New. (print_main_table): New opcode_fprintf_vma instead of fprintf_vma.
Diffstat (limited to 'opcodes/ia64-gen.c')
-rw-r--r--opcodes/ia64-gen.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/opcodes/ia64-gen.c b/opcodes/ia64-gen.c
index e12c145bea..cb86e94042 100644
--- a/opcodes/ia64-gen.c
+++ b/opcodes/ia64-gen.c
@@ -54,6 +54,15 @@
#include <libintl.h>
#define _(String) gettext (String)
+/* This is a copy of fprintf_vma from bfd/bfd-in2.h. We have to use this
+ always, because we might be compiled without BFD64 defined, if configured
+ for a 32-bit target and --enable-targets=all is used. This will work for
+ both 32-bit and 64-bit hosts. */
+#define _opcode_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
+#define _opcode_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
+#define opcode_fprintf_vma(s,x) \
+ fprintf ((s), "%08lx%08lx", _opcode_int64_high (x), _opcode_int64_low (x))
+
const char * program_name = NULL;
int debug = 0;
@@ -2701,9 +2710,9 @@ print_main_table (void)
ptr->name->num,
ptr->opcode->type,
ptr->opcode->num_outputs);
- fprintf_vma (stdout, ptr->opcode->opcode);
+ opcode_fprintf_vma (stdout, ptr->opcode->opcode);
printf ("ull, 0x");
- fprintf_vma (stdout, ptr->opcode->mask);
+ opcode_fprintf_vma (stdout, ptr->opcode->mask);
printf ("ull, { %d, %d, %d, %d, %d }, 0x%x, %d, },\n",
ptr->opcode->operands[0],
ptr->opcode->operands[1],