From c861c7f78168567b04927ab91e02b0609ec009d6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 28 Aug 2013 10:25:36 +0000 Subject: * aarch64-opc.c (aarch64_logical_immediate_p): Return FALSE if the immediate is not suitable for the 32-bit ABI. * gas/aarch64/illegal.s: Add illegal constant for logical operation. * gas/aarch64/illegal.l: Add expected error message. --- opcodes/ChangeLog | 5 +++++ opcodes/aarch64-opc.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'opcodes') diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index ce6aebecf1..6966b95c27 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2013-08-28 Nick Clifton + + * aarch64-opc.c (aarch64_logical_immediate_p): Return FALSE if the + immediate is not suitable for the 32-bit ABI. + 2013-08-23 Maciej W. Rozycki * micromips-opc.c (micromips_opcodes): Use RD_4 for "alnv.ps", diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 74f2826035..f32ee5ec2f 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -1063,7 +1063,8 @@ aarch64_logical_immediate_p (uint64_t value, int is32, aarch64_insn *encoding) /* Allow all zeros or all ones in top 32-bits, so that constant expressions like ~1 are permitted. */ if (value >> 32 != 0 && value >> 32 != 0xffffffff) - return 0xffffffff; + return FALSE; + /* Replicate the 32 lower bits to the 32 upper bits. */ value &= 0xffffffff; value |= value << 32; -- cgit v1.2.1