diff options
author | David Faust <david.faust@oracle.com> | 2023-07-27 10:56:29 -0700 |
---|---|---|
committer | David Faust <david.faust@oracle.com> | 2023-07-27 11:55:27 -0700 |
commit | 31d18ff44244d1fe3ae913a5a1957d82059cb328 (patch) | |
tree | 15dd9729344ef89ca599018a38c417c96c878302 /gcc/config/bpf | |
parent | d023775c1180730ce15adfe191a98c174618f814 (diff) | |
download | gcc-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.md | 4 |
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 |