From 96a86c01d119372f4af5aff2501d3104e6c1a8e3 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 28 Mar 2019 10:36:55 +1030 Subject: PR24390, Don't decode mtfsb field as a cr field "mtfsb0 4*cr7+lt" doesn't make all that much sense, but unfortunately glibc uses just that instead of "mtfsb0 28" to clear the fpscr xe bit. So for backwards compatibility accept cr field expressions when assembling mtfsb operands, but disassemble to a plain number. PR 24390 include/ * opcode/ppc.h (PPC_OPERAND_CR_REG): Comment. opcodes/ * ppc-opc.c (BTF): Define. (powerpc_opcodes): Use for mtfsb*. * ppc-dis.c (print_insn_powerpc): Print fields with both PPC_OPERAND_CR_REG and PPC_OPERAND_CR_BIT as a plain number. gas/ * testsuite/gas/ppc/476.d: Update mtfsb*. * testsuite/gas/ppc/a2.d: Likewise. --- gas/ChangeLog | 6 ++++++ gas/testsuite/gas/ppc/476.d | 8 ++++---- gas/testsuite/gas/ppc/a2.d | 8 ++++---- 3 files changed, 14 insertions(+), 8 deletions(-) (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index e2e882a..69c1952 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2019-03-28 Alan Modra + + PR 24390 + * testsuite/gas/ppc/476.d: Update mtfsb*. + * testsuite/gas/ppc/a2.d: Likewise. + 2019-03-21 Alan Modra * emul.h (struct emulation): Delete strip_underscore. diff --git a/gas/testsuite/gas/ppc/476.d b/gas/testsuite/gas/ppc/476.d index 253323c..6743a13 100644 --- a/gas/testsuite/gas/ppc/476.d +++ b/gas/testsuite/gas/ppc/476.d @@ -315,10 +315,10 @@ Disassembly of section \.text: 4c4: (7d 10 6b 86|86 6b 10 7d) mtdcr 432,r8 4c8: (7c 83 03 46|46 03 83 7c) mtdcrux r3,r4 4cc: (7c e6 03 06|06 03 e6 7c) mtdcrx r6,r7 - 4d0: (fc 60 00 8c|8c 00 60 fc) mtfsb0 so - 4d4: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. so - 4d8: (fc 60 00 4c|4c 00 60 fc) mtfsb1 so - 4dc: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. so + 4d0: (fc 60 00 8c|8c 00 60 fc) mtfsb0 3 + 4d4: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. 3 + 4d8: (fc 60 00 4c|4c 00 60 fc) mtfsb1 3 + 4dc: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. 3 4e0: (fc 0c 55 8e|8e 55 0c fc) mtfsf 6,f10 4e4: (fc 0c 55 8e|8e 55 0c fc) mtfsf 6,f10 4e8: (fc 0d 55 8e|8e 55 0d fc) mtfsf 6,f10,0,1 diff --git a/gas/testsuite/gas/ppc/a2.d b/gas/testsuite/gas/ppc/a2.d index bb60275..3e3ea2c 100644 --- a/gas/testsuite/gas/ppc/a2.d +++ b/gas/testsuite/gas/ppc/a2.d @@ -372,10 +372,10 @@ Disassembly of section \.text: 560: (7d 4a 3b 86|86 3b 4a 7d) mtdcr 234,r10 564: (7d 6a 03 07|07 03 6a 7d) mtdcrx\. r10,r11 568: (7d 6a 03 06|06 03 6a 7d) mtdcrx r10,r11 - 56c: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. so - 570: (fc 60 00 8c|8c 00 60 fc) mtfsb0 so - 574: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. so - 578: (fc 60 00 4c|4c 00 60 fc) mtfsb1 so + 56c: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. 3 + 570: (fc 60 00 8c|8c 00 60 fc) mtfsb0 3 + 574: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. 3 + 578: (fc 60 00 4c|4c 00 60 fc) mtfsb1 3 57c: (fc 0c a5 8f|8f a5 0c fc) mtfsf\. 6,f20 580: (fc 0c a5 8e|8e a5 0c fc) mtfsf 6,f20 584: (fc 0c a5 8f|8f a5 0c fc) mtfsf\. 6,f20 -- cgit v1.1