summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/gas
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2011-06-23 20:54:44 +0000
committerdim <dim@FreeBSD.org>2011-06-23 20:54:44 +0000
commit1f9c357d9bfe97631d50ce6a97e271360f417bbb (patch)
treed1e855ebb8944db1cce4619aeac9c1b63943d022 /contrib/binutils/gas
parent484c74853314285d6c33b76eff2f8fa4825cf4e3 (diff)
downloadFreeBSD-src-1f9c357d9bfe97631d50ce6a97e271360f417bbb.zip
FreeBSD-src-1f9c357d9bfe97631d50ce6a97e271360f417bbb.tar.gz
Make GNU as recognize the ARM 'rrx' mnemonic, which can be generated by
clang for certain expressions. Code taken from Apple cctools (GPLv2). Submitted by: damjan.marion@gmail.com
Diffstat (limited to 'contrib/binutils/gas')
-rw-r--r--contrib/binutils/gas/config/tc-arm.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/contrib/binutils/gas/config/tc-arm.c b/contrib/binutils/gas/config/tc-arm.c
index 683e6ee..c48a758 100644
--- a/contrib/binutils/gas/config/tc-arm.c
+++ b/contrib/binutils/gas/config/tc-arm.c
@@ -9974,6 +9974,13 @@ do_t_rbit (void)
}
static void
+do_t_rd_rm (void)
+{
+ inst.instruction |= inst.operands[0].reg << 8;
+ inst.instruction |= inst.operands[1].reg;
+}
+
+static void
do_t_rev (void)
{
if (inst.operands[0].reg <= 7 && inst.operands[1].reg <= 7
@@ -14901,6 +14908,9 @@ static const struct asm_opcode insns[] =
TCE(rsb, 0600000, ebc00000, 3, (RR, oRR, SH), arit, t_rsb),
TC3(rsbs, 0700000, ebd00000, 3, (RR, oRR, SH), arit, t_rsb),
+ TCE(rrx, 1a00060, ea4f0030, 2, (RR, RR), rd_rm, t_rd_rm),
+ TCE(rrxs, 1b00060, ea5f0030, 2, (RR, RR), rd_rm, t_rd_rm),
+
#undef THUMB_VARIANT
#define THUMB_VARIANT &arm_ext_v6
TCE(cpy, 1a00000, 4600, 2, (RR, RR), rd_rm, t_cpy),
OpenPOWER on IntegriCloud