+2016-08-11  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/tc-aarch64.c (parse_aarch64_imm_float): Reject -0.0.
+       * testsuite/gas/aarch64/illegal.s, testsuite/gas/aarch64/illegal.l:
+       Add tests for -0.0.  Add an end-of-file comment.
+
 2016-08-05  Nick Clifton  <nickc@redhat.com>
 
        PR gas/20429
 
        }
     }
 
-  if (aarch64_imm_float_p (fpword) || (fpword & 0x7fffffff) == 0)
+  if (aarch64_imm_float_p (fpword) || fpword == 0)
     {
       *immed = fpword;
       *ccp = str;
 
 [^:]*:567: Error: .*`mrs x7,S1_1_C16_C6_6'
 [^:]*:568: Error: .*`mrs x8,S2_2_C15_C16_7'
 [^:]*:569: Error: .*`mrs x9,S3_3_C14_C15_8'
-[^:]*:569: Error: .*
+[^:]*:571: Error: .*`fmov s0,#-0\.0'
+[^:]*:573: Error: .*`fmov s0,#0x80000000'
+[^:]*:575: Error: .*`fmov d0,#-0\.0'
+[^:]*:577: Error: .*`fmov d0,#0x8000000000000000'
+[^:]*:582: Error: .*`fcmgt v0\.4s,v0\.4s,#-0\.0'
+[^:]*:585: Error: .*`fcmgt v0\.2d,v0\.2d,#-0\.0'
+[^:]*:587: Error: .*
 
        mrs     x7, S1_1_C16_C6_6
        mrs     x8, S2_2_C15_C16_7
        mrs     x9, S3_3_C14_C15_8
+
+       fmov    s0, #-0.0
+       fmov    s0, #0x40000000 // OK
+       fmov    s0, #0x80000000
+       fmov    s0, #0xc0000000 // OK
+       fmov    d0, #-0.0
+       fmov    d0, #0x4000000000000000 // OK
+       fmov    d0, #0x8000000000000000
+       fmov    d0, #0xc000000000000000 // OK
+
+       fcmgt   v0.4s, v0.4s, #0.0 // OK
+       fcmgt   v0.4s, v0.4s, #0 // OK
+       fcmgt   v0.4s, v0.4s, #-0.0
+       fcmgt   v0.2d, v0.2d, #0.0 // OK
+       fcmgt   v0.2d, v0.2d, #0 // OK
+       fcmgt   v0.2d, v0.2d, #-0.0
+
+       // End (for errors during literal pool generation)