projects
/
platform
/
upstream
/
binutils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update copyright dates
[platform/upstream/binutils.git]
/
opcodes
/
moxie-dis.c
diff --git
a/opcodes/moxie-dis.c
b/opcodes/moxie-dis.c
index
d63eb2d
..
4e67e2c
100644
(file)
--- a/
opcodes/moxie-dis.c
+++ b/
opcodes/moxie-dis.c
@@
-33,6
+33,7
@@
static void *stream;
/* Macros to extract operands from the instruction word. */
#define OP_A(i) ((i >> 4) & 0xf)
#define OP_B(i) (i & 0xf)
/* Macros to extract operands from the instruction word. */
#define OP_A(i) ((i >> 4) & 0xf)
#define OP_B(i) (i & 0xf)
+#define INST2OFFSET(o) ((((signed short)((o & ((1<<10)-1))<<6))>>6)<<1)
static const char * reg_names[16] =
{ "$fp", "$sp", "$r0", "$r1", "$r2", "$r3", "$r4", "$r5",
static const char * reg_names[16] =
{ "$fp", "$sp", "$r0", "$r1", "$r2", "$r3", "$r4", "$r5",
@@
-176,11
+177,13
@@
print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
else
{
/* Extract the Form 3 opcode. */
else
{
/* Extract the Form 3 opcode. */
- opcode = &moxie_form
2_opc_info[(iword >> 12) & 3
];
+ opcode = &moxie_form
3_opc_info[(iword >> 10) & 15
];
switch (opcode->itype)
{
switch (opcode->itype)
{
- case MOXIE_F3_NARG:
- fpr (stream, "%s", opcode->name);
+ case MOXIE_F3_PCREL:
+ fpr (stream, "%s\t", opcode->name);
+ info->print_address_func ((bfd_vma) (addr + INST2OFFSET(iword)),
+ info);
break;
default:
abort();
break;
default:
abort();