aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/bpf
diff options
context:
space:
mode:
authorDavid Faust <david.faust@oracle.com>2023-07-27 10:56:29 -0700
committerDavid Faust <david.faust@oracle.com>2023-07-27 11:55:27 -0700
commit31d18ff44244d1fe3ae913a5a1957d82059cb328 (patch)
tree15dd9729344ef89ca599018a38c417c96c878302 /gcc/config/bpf
parentd023775c1180730ce15adfe191a98c174618f814 (diff)
downloadgcc-31d18ff44244d1fe3ae913a5a1957d82059cb328.zip
gcc-31d18ff44244d1fe3ae913a5a1957d82059cb328.tar.gz
gcc-31d18ff44244d1fe3ae913a5a1957d82059cb328.tar.bz2
bpf: correct pseudo-C template for add3 and sub3
The pseudo-C output templates for these instructions were incorrectly using operand 1 rather than operand 2 on the RHS, which led to some very incorrect assembly generation with -masm=pseudoc. gcc/ * config/bpf/bpf.md (add<AM:mode>3): Use %w2 instead of %w1 in pseudo-C dialect output template. (sub<AM:mode>3): Likewise. gcc/testsuite/ * gcc.target/bpf/alu-2.c: New test. * gcc.target/bpf/alu-pseudoc-2.c: Likewise.
Diffstat (limited to 'gcc/config/bpf')
-rw-r--r--gcc/config/bpf/bpf.md4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/bpf/bpf.md b/gcc/config/bpf/bpf.md
index 2ffc4eb..6643639 100644
--- a/gcc/config/bpf/bpf.md
+++ b/gcc/config/bpf/bpf.md
@@ -131,7 +131,7 @@
(plus:AM (match_operand:AM 1 "register_operand" " 0,0")
(match_operand:AM 2 "reg_or_imm_operand" " r,I")))]
"1"
- "{add<msuffix>\t%0,%2|%w0 += %w1}"
+ "{add<msuffix>\t%0,%2|%w0 += %w2}"
[(set_attr "type" "<mtype>")])
;;; Subtraction
@@ -144,7 +144,7 @@
(minus:AM (match_operand:AM 1 "register_operand" " 0")
(match_operand:AM 2 "register_operand" " r")))]
""
- "{sub<msuffix>\t%0,%2|%w0 -= %w1}"
+ "{sub<msuffix>\t%0,%2|%w0 -= %w2}"
[(set_attr "type" "<mtype>")])
;;; Negation