[ARM] vcmp/vcmpe should accept #0x0 as an operand
gas/ 2015-01-13 Matthew Wahab <matthew.wahab@arm.com> * config/tc-arm.c (parse_ifimm_zero): Accept #0x0 as a synonym for #0, restoring previous behaviour. gas/testsuite/ 2015-01-13 Matthew Wahab <matthew.wahab@arm.com> * gas/arm/ual-vcmp.s: Add vcmp, vcmpe with #0x0 operand. * gas/ual/vcmp.d: Update expected output. * gas/ual/vcmp-zero-bad.l: Likewise
This commit is contained in:
parent
576fd14c68
commit
0900a05b4c
@ -1,3 +1,8 @@
|
||||
2015-01-13 Matthew Wahab <matthew.wahab@arm.com>
|
||||
|
||||
* config/tc-arm.c (parse_ifimm_zero): Accept #0x0 as a synonym for
|
||||
#0, restoring previous behaviour.
|
||||
|
||||
2015-01-12 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* gas/dw2gencfi.c (cfi_add_label, dot_cfi_label): New.
|
||||
|
@ -4961,6 +4961,16 @@ parse_ifimm_zero (char **in)
|
||||
return FALSE;
|
||||
|
||||
++*in;
|
||||
|
||||
/* Accept #0x0 as a synonym for #0. */
|
||||
if (strncmp (*in, "0x", 2) == 0)
|
||||
{
|
||||
int val;
|
||||
if (parse_immediate (in, &val, 0, 0, TRUE) == FAIL)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
error_code = atof_generic (in, ".", EXP_CHARS,
|
||||
&generic_floating_point_number);
|
||||
|
||||
|
@ -1,3 +1,9 @@
|
||||
2015-01-13 Matthew Wahab <matthew.wahab@arm.com>
|
||||
|
||||
* gas/arm/ual-vcmp.s: Add vcmp, vcmpe with #0x0 operand.
|
||||
* gas/ual/vcmp.d: Update expected output.
|
||||
* gas/ual/vcmp-zero-bad.l: Likewise
|
||||
|
||||
2015-01-12 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
gas/cfi/cfi-label.d, gas/cfi/cfi-label.s: New.
|
||||
|
@ -14,11 +14,15 @@ Disassembly of section .text:
|
||||
0+014 <[^>]*> eeb53a40 vcmp.f32 s6, #0.0
|
||||
0+018 <[^>]*> eef53ac0 vcmpe.f32 s7, #0.0
|
||||
0+01c <[^>]*> eeb54ac0 vcmpe.f32 s8, #0.0
|
||||
0+020 <[^>]*> eeb50b40 vcmp.f64 d0, #0.0
|
||||
0+024 <[^>]*> eeb51b40 vcmp.f64 d1, #0.0
|
||||
0+028 <[^>]*> eeb52bc0 vcmpe.f64 d2, #0.0
|
||||
0+02c <[^>]*> eeb53bc0 vcmpe.f64 d3, #0.0
|
||||
0+030 <[^>]*> eeb54b40 vcmp.f64 d4, #0.0
|
||||
0+034 <[^>]*> eeb55b40 vcmp.f64 d5, #0.0
|
||||
0+038 <[^>]*> eeb56bc0 vcmpe.f64 d6, #0.0
|
||||
0+03c <[^>]*> eeb57bc0 vcmpe.f64 d7, #0.0
|
||||
0+020 <[^>]*> eef54a40 vcmp.f32 s9, #0.0
|
||||
0+024 <[^>]*> eeb55ac0 vcmpe.f32 s10, #0.0
|
||||
0+028 <[^>]*> eeb50b40 vcmp.f64 d0, #0.0
|
||||
0+02c <[^>]*> eeb51b40 vcmp.f64 d1, #0.0
|
||||
0+030 <[^>]*> eeb52bc0 vcmpe.f64 d2, #0.0
|
||||
0+034 <[^>]*> eeb53bc0 vcmpe.f64 d3, #0.0
|
||||
0+038 <[^>]*> eeb54b40 vcmp.f64 d4, #0.0
|
||||
0+03c <[^>]*> eeb55b40 vcmp.f64 d5, #0.0
|
||||
0+040 <[^>]*> eeb56bc0 vcmpe.f64 d6, #0.0
|
||||
0+044 <[^>]*> eeb57bc0 vcmpe.f64 d7, #0.0
|
||||
0+048 <[^>]*> eeb58b40 vcmp.f64 d8, #0.0
|
||||
0+04c <[^>]*> eeb59bc0 vcmpe.f64 d9, #0.0
|
@ -10,6 +10,8 @@ vcmp.f32 s5, #0.0e2
|
||||
vcmp.f32 s6, #0e-3
|
||||
vcmpe.f32 s7, #0.0000
|
||||
vcmpe.f32 s8, #.0
|
||||
vcmp.f32 s9, #0x0
|
||||
vcmpe.f32 s10, #0x0
|
||||
|
||||
vcmp.f64 d0, #0.0
|
||||
vcmp.f64 d1, #0
|
||||
@ -19,3 +21,5 @@ vcmp.f64 d4, #0.0e5
|
||||
vcmp.f64 d5, #0e-2
|
||||
vcmpe.f64 d6, #0.00
|
||||
vcmpe.f64 d7, #.0
|
||||
vcmp.f64 d8, #0x0
|
||||
vcmpe.f64 d9, #0x0
|
||||
|
@ -4,5 +4,5 @@
|
||||
[^:]*:7: Error: only floating point zero is allowed as immediate value -- `vcmpe.f32 s3,5'
|
||||
[^:]*:8: Error: only floating point zero is allowed as immediate value -- `vcmpe.f32 s4,#-0.0'
|
||||
[^:]*:10: Error: only floating point zero is allowed as immediate value -- `vcmp.f64 d0,#-1'
|
||||
[^:]*:11: Error: garbage following instruction -- `vcmpe.f64 d3,#0x35'
|
||||
[^:]*:11: Error: only floating point zero is allowed as immediate value -- `vcmpe.f64 d3,#0x35'
|
||||
[^:]*:12: Error: only floating point zero is allowed as immediate value -- `vcmpe.f64 d4,0xf'
|
||||
|
Loading…
x
Reference in New Issue
Block a user