This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
gdb: microblaze opcode enumeration vs ISO/IEC TS 18661-3:2015
- From: "Dr N.W. Filardo" <nwf20 at cam dot ac dot uk>
- To: binutils at sourceware dot org
- Date: Mon, 16 Dec 2019 18:27:40 +0000
- Subject: gdb: microblaze opcode enumeration vs ISO/IEC TS 18661-3:2015
Hello binutils@,
As per https://sourceware.org/bugzilla/show_bug.cgi?id=25277,
gdb/opcodes/microblaze-opcm.h attempts to use fadd, fmul, and fdiv as
arms of enum microblaze_instr, but these symbols are now, by ISO/IEC TS
18661-3:2015, defined to refer to functions from the runtime subsystem.
I believe the patch below suffices.
Cheers,
--nwf;
P.S. Please CC: me on any replies and/or use the bugtracker, as I am not
subscribed to this list.
--- a/opcodes/microblaze-opc.h
+++ a/opcodes/microblaze-opc.h
@@ -255,10 +255,10 @@ struct op_code_struct
{"smi", INST_TYPE_RD_R1_IMM, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0xF8000000, OPCODE_MASK_H, invalid_inst,
memory_store_inst },
{"msrset",INST_TYPE_RD_IMM15, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x94100000, OPCODE_MASK_H23N, msrset,
special_inst },
{"msrclr",INST_TYPE_RD_IMM15, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x94110000, OPCODE_MASK_H23N, msrclr,
special_inst },
- {"fadd", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000000, OPCODE_MASK_H4, fadd,
arithmetic_inst },
+ {"fadd", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000000, OPCODE_MASK_H4, mbi_fadd,
arithmetic_inst },
{"frsub", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000080, OPCODE_MASK_H4, frsub,
arithmetic_inst },
- {"fmul", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000100, OPCODE_MASK_H4, fmul,
arithmetic_inst },
- {"fdiv", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000180, OPCODE_MASK_H4, fdiv,
arithmetic_inst },
+ {"fmul", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000100, OPCODE_MASK_H4, mbi_fmul,
arithmetic_inst },
+ {"fdiv", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000180, OPCODE_MASK_H4, mbi_fdiv,
arithmetic_inst },
{"fcmp.lt", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000210, OPCODE_MASK_H4, fcmp_lt,
arithmetic_inst },
{"fcmp.eq", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000220, OPCODE_MASK_H4, fcmp_eq,
arithmetic_inst },
{"fcmp.le", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT,
IMMVAL_MASK_NON_SPECIAL, 0x58000230, OPCODE_MASK_H4, fcmp_le,
arithmetic_inst },
--- a/opcodes/microblaze-opcm.h
+++ a/opcodes/microblaze-opcm.h
@@ -40,7 +40,7 @@ enum microblaze_instr
brki, beqi, beqid, bnei, bneid, blti, bltid, blei, bleid, bgti,
bgtid, bgei, bgeid, lbu, lbur, lhu, lhur, lw, lwr, lwx, sb, sbr, sh,
shr, sw, swr, swx, lbui, lhui, lwi,
- sbi, shi, swi, msrset, msrclr, tuqula, fadd, frsub, fmul, fdiv,
+ sbi, shi, swi, msrset, msrclr, tuqula, mbi_fadd, frsub, mbi_fmul,
mbi_fdiv,
fcmp_lt, fcmp_eq, fcmp_le, fcmp_gt, fcmp_ne, fcmp_ge, fcmp_un, flt,
fint, fsqrt,
tget, tcget, tnget, tncget, tput, tcput, tnput, tncput,