diff options
author | Alan Modra <amodra@gmail.com> | 2014-11-28 13:21:52 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2014-11-28 14:34:10 +1030 |
commit | 8514e4db84ccafaf3be07e842be2fa2001ba876e (patch) | |
tree | 861191d6efacf8636ea466799069b500ea5ed990 /opcodes | |
parent | 8066deb11b8e23de5c75e3e2526524bdef0f5a41 (diff) | |
download | gdb-8514e4db84ccafaf3be07e842be2fa2001ba876e.zip gdb-8514e4db84ccafaf3be07e842be2fa2001ba876e.tar.gz gdb-8514e4db84ccafaf3be07e842be2fa2001ba876e.tar.bz2 |
Don't deprecate powerpc mftb insn
mftb is marked phased out in the architecture manual, but we can keep
it as an extended mnemonic for mftbl.
* ppc-opc.c (powerpc_opcodes <mftb>): Don't deprecate for power7.
(TB): Delete.
(insert_tbr, extract_tbr): Validate tbr number.
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 6 | ||||
-rw-r--r-- | opcodes/ppc-opc.c | 16 |
2 files changed, 15 insertions, 7 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 2361a33..9a1d68c 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2014-11-28 Alan Modra <amodra@gmail.com> + + * ppc-opc.c (powerpc_opcodes <mftb>): Don't deprecate for power7. + (TB): Delete. + (insert_tbr, extract_tbr): Validate tbr number. + 2014-11-24 H.J. Lu <hongjiu.lu@intel.com> * configure: Regenerated. diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index bcc0ca0..4427465 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -1872,28 +1872,30 @@ extract_sprg (unsigned long insn, much, since the architecture manual does not define mftb as accepting any values other than 268 or 269. */ -#define TB (268) - static unsigned long insert_tbr (unsigned long insn, long value, ppc_cpu_t dialect ATTRIBUTE_UNUSED, - const char **errmsg ATTRIBUTE_UNUSED) + const char **errmsg) { if (value == 0) - value = TB; + value = 268; + if (value != 268 && value != 269) + *errmsg = _("invalid tbr number"); return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6); } static long extract_tbr (unsigned long insn, ppc_cpu_t dialect ATTRIBUTE_UNUSED, - int *invalid ATTRIBUTE_UNUSED) + int *invalid) { long ret; ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0); - if (ret == TB) + if (ret != 268 && ret != 269) + *invalid = 1; + if (ret == 268) ret = 0; return ret; } @@ -5051,7 +5053,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371, {RT}}, {"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371, {RT}}, -{"mftb", X(31,371), X_MASK, PPC|PPCA2, NO371|POWER7, {RT, TBR}}, +{"mftb", X(31,371), X_MASK, PPC|PPCA2, NO371, {RT, TBR}}, {"lwaux", X(31,373), X_MASK, PPC64|PPCVLE, PPCNONE, {RT, RAL, RB}}, |