Peter Bergner
11a0cf2ec0
Allow for optional operands with non-zero default values.
...
ISA 2.07 (ie, POWER8) added the rfebb instruction which takes one operand
with the value of either a 0 or 1. It also defines an extended mnemonic
with no operands (ie, "rfebb") that is supposed to be equivalent to "rfebb 1".
I implemented rfebb's lone operand with PPC_OPERAND_OPTIONAL, but the
problem is, optional operands that are ommitted always default to the
value 0, which is wrong in this case. I have added support for allowing
non-zero default values by adding an additional flag PPC_OPERAND_OPTIONAL_VALUE
that specifies that the default operand value to be used is stored in the
SHIFT field of the operand field immediately following this one.
This fixes the rfebb issue. I also fixed the mftb and mfcr instructions
so they use the same mechanism. This allows us to flag invalid uses of
mfcr where we explicitly pass in a zero FXM value, like the use in a2.[sd].
include/opcode/
* ppc.h (PPC_OPERAND_OPTIONAL_VALUE): New.
(ppc_optional_operand_value): New inline function.
opcodes/
* ppc-dis.h (skip_optional_operands): Use ppc_optional_operand_value.
* ppc-opc.c (FXM4): Add non-zero optional value.
(TBR): Likewise.
(SXL): Likewise.
(insert_fxm): Handle new default operand value.
(extract_fxm): Likewise.
(insert_tbr): Likewise.
(extract_tbr): Likewise.
gas/
* config/tc-ppc.c (md_assemble): Use ppc_optional_operand_value.
Allow for optional operands without insert functions.
gas/testsuite/
* gas/ppc/power8.d: Fixup rfebb test results.
* gas/ppc/a2.s: Fix invalid mfcr test.
* gas/ppc/a2.d: Likewise.
2015-06-19 17:17:07 -05:00
..
2015-04-29 16:26:14 +01:00
2010-12-09 09:03:18 +00:00
2015-06-02 12:20:00 +01:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-06-02 12:20:00 +01:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-06-02 12:20:00 +01:00
2015-06-16 14:17:34 +01:00
2015-01-02 00:53:45 +10:30
2015-06-02 12:20:00 +01:00
2012-08-13 14:26:14 +00:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-06-16 13:35:33 +01:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-06-19 17:17:07 -05:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2013-01-02 13:13:36 +00:00
2014-01-08 05:32:12 -08:00
2015-01-02 00:53:45 +10:30
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2014-07-04 13:40:28 +09:30
2015-05-11 10:48:21 -07:00
2015-05-11 10:48:21 -07:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-03-30 02:20:22 -04:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-05-11 10:48:21 -07:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-28 16:25:18 +10:30
2015-01-28 16:25:18 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-04-23 16:42:40 +02:00
2015-06-01 09:51:28 +02:00
2015-05-15 09:48:10 -07:00
2015-05-15 09:48:10 -07:00
2015-01-02 00:53:45 +10:30
2015-05-15 09:48:10 -07:00
2015-06-01 09:50:00 +02:00
2015-01-02 00:53:45 +10:30
2015-06-01 11:40:28 +02:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2012-09-04 13:52:06 +00:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2013-05-17 12:57:16 +00:00
2013-05-17 12:57:16 +00:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-28 16:25:18 +10:30
2015-03-29 07:37:50 -07:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-02-19 22:45:47 +00:00
2015-02-10 18:09:39 +00:00
2015-02-10 18:09:39 +00:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-03-13 23:01:34 +00:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-06-04 16:33:12 +01:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-29 16:29:42 +08:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-06-19 17:17:07 -05:00
2015-06-19 17:17:07 -05:00
2015-04-30 15:25:49 -04:00
2015-04-30 15:25:49 -04:00
2015-04-30 15:25:49 -04:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-16 12:28:58 +01:00
2015-01-16 12:28:58 +01:00
2015-04-27 10:29:16 +02:00
2015-04-27 10:29:16 +02:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-02-25 21:26:59 +01:00
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30
2015-01-02 00:53:45 +10:30