! { 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