+2023-07-26 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * testsuite/gas/bpf/alu.s: Add test for NEGI and NEG32I.
+ * testsuite/gas/bpf/alu32.s: Likewise.
+ * testsuite/gas/bpf/alu-pseudoc.s: Likewise.
+ * testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
+ * testsuite/gas/bpf/alu.d: Add expected results.
+ * testsuite/gas/bpf/alu-be.d: Likewise.
+ * testsuite/gas/bpf/alu-pseudoc.d: Likewise.
+ * testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
+ * testsuite/gas/bpf/alu32.d: Likewise.
+ * testsuite/gas/bpf/alu32-be.d: Likewise.
+ * testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
+
2023-07-26 Jose E. Marchesi <jose.marchesi@oracle.com>
* testsuite/gas/bpf/alu.s: The register neg instruction gets only
1d0: d7 10 00 00 00 00 00 10 r1 = bswap16 r1
1d8: d7 20 00 00 00 00 00 20 r2 = bswap32 r2
1e0: d7 30 00 00 00 00 00 40 r3 = bswap64 r3
+ 1e8: b7 10 00 00 ff ff f1 00 r1=0xfffff100
\ No newline at end of file
1d0: d7 10 00 00 00 00 00 10 bswap %r1,16
1d8: d7 20 00 00 00 00 00 20 bswap %r2,32
1e0: d7 30 00 00 00 00 00 40 bswap %r3,64
+ 1e8: 87 10 00 00 00 00 0f 00 neg %r1,0xf00
\ No newline at end of file
1d0: d7 01 00 00 10 00 00 00 r1 = bswap16 r1
1d8: d7 02 00 00 20 00 00 00 r2 = bswap32 r2
1e0: d7 03 00 00 40 00 00 00 r3 = bswap64 r3
+ 1e8: b7 01 00 00 00 f1 ff ff r1=0xfffff100
r1 = bswap16 r1
r2 = bswap32 r2
r3 = bswap64 r3
+ ;; Note that the next instruction gets processed by the GAS
+ ;; preprocessor into r1 =-0xf00, which parses into a %dr = %i32
+ ;; instruction instead of a neg :/
+ r1 = - 0xf00
1d0: d7 01 00 00 10 00 00 00 bswap %r1,16
1d8: d7 02 00 00 20 00 00 00 bswap %r2,32
1e0: d7 03 00 00 40 00 00 00 bswap %r3,64
+ 1e8: 87 01 00 00 00 0f 00 00 neg %r1,0xf00
\ No newline at end of file
bswap %r1, 16
bswap %r2, 32
bswap %r3, 64
+ neg %r1, 0xf00
188: bc 12 00 08 00 00 00 00 w1 = \(s8\) w2
190: bc 12 00 10 00 00 00 00 w1 = \(s16\) w2
198: bc 12 00 20 00 00 00 00 w1 = \(s32\) w2
+ 1a0: b4 10 00 00 ff ff f1 00 w1=0xfffff100
\ No newline at end of file
188: bc 12 00 08 00 00 00 00 movs32 %r1,%r2,8
190: bc 12 00 10 00 00 00 00 movs32 %r1,%r2,16
198: bc 12 00 20 00 00 00 00 movs32 %r1,%r2,32
+ 1a0: 84 10 00 00 00 00 0f 00 neg32 %r1,0xf00
188: bc 21 08 00 00 00 00 00 w1 = \(s8\) w2
190: bc 21 10 00 00 00 00 00 w1 = \(s16\) w2
198: bc 21 20 00 00 00 00 00 w1 = \(s32\) w2
+ 1a0: b4 01 00 00 00 f1 ff ff w1=0xfffff100
w1 = (s8) w2
w1 = (s16) w2
w1 = (s32) w2
+ ;; Note that the next instruction gets processed by the GAS
+ ;; preprocessor into w1 =-0xf00, which parses into a %dw = %i32
+ ;; instruction instead of a neg :/
+ w1 = - 0xf00
188: bc 21 08 00 00 00 00 00 movs32 %r1,%r2,8
190: bc 21 10 00 00 00 00 00 movs32 %r1,%r2,16
198: bc 21 20 00 00 00 00 00 movs32 %r1,%r2,32
+ 1a0: 84 01 00 00 00 0f 00 00 neg32 %r1,0xf00
\ No newline at end of file
movs32 %r1,%r2,8
movs32 %r1,%r2,16
movs32 %r1,%r2,32
+ neg32 %r1, 0xf00