blob: dd1a88c4984ddfc2a9d97455f5f2346b9cbd3381 [file] [log] [blame]
! { dg-do assemble }
! { dg-options "--abi=32" }
! Check that we get errors for immediate operands with expressions with
! resolvable differences between local symbols, but not in range for the
! operands, and no errors for nearby valid values.
.text
.mode SHmedia
start:
addi r50,.Lab500 - .Lab1,r40
addi r50,.Lab1000 - .Lab1,r40 ! { dg-error "not a 10-bit signed value" }
addi r50,.Lab500 - .Lab1 + 1,r40
addi r50,.Lab500 - .Lab1 + 2,r40
ld.uw r30,.Lab1000 - .Lab1,r40
ld.uw r30,.Lab500 - .Lab1 + 1,r40 ! { dg-error "not an even value" }
ld.uw r30,.Lab500 - .Lab1 + 2,r40
ld.uw r50,.Lab2000 - .Lab1,r20 ! { dg-error "not a 11-bit signed value" }
ld.l r50,.Lab2000 - .Lab1,r20
ld.l r50,.Lab2000 - .Lab1 + 1,r20 ! { dg-error "not a multiple of 4" }
ld.l r50,.Lab2000 - .Lab1 + 2,r20 ! { dg-error "not a multiple of 4" }
ld.l r50,.Lab4000 - .Lab1,r20 ! { dg-error "not a 12-bit signed value" }
nop
.data
.long 0
.Lab1:
.zero 500,0
.Lab500:
.zero 500,0
.Lab1000:
.zero 1000,0
.Lab2000:
.zero 2000,0
.Lab4000:
.long 0