]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
target/mips: add Octeon SAAD instruction
authorJames Hilliard <james.hilliard1@gmail.com>
Fri, 8 May 2026 08:51:40 +0000 (10:51 +0200)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Thu, 21 May 2026 06:20:58 +0000 (08:20 +0200)
SAAD is the doubleword form of SAA: it atomically adds rt to the
naturally aligned 64-bit doubleword at base and discards the old memory
value.

Route it through the common SAA/SAAD translator so the MemOp selects the
aligned doubleword transaction size.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20260520172313.23777-15-philmd@linaro.org>

target/mips/tcg/octeon.decode
target/mips/tcg/octeon_translate.c

index d6b241de421b197f5441d3653aa84e0982f71dd7..d77717cd507d98d5f96f825bdd1a2cb7ddeea04c 100644 (file)
@@ -47,6 +47,7 @@ SNEI         011100 rs:5 rt:5 imm:s10 101111 &cmpi
 &saa         base rt
 @saa         ...... base:5 rt:5 ................ &saa
 SAA          011100 ..... ..... 00000 00000 011000 @saa
+SAAD         011100 ..... ..... 00000 00000 011001 @saa
 
 &lx          base index rd
 @lx          ...... base:5 index:5 rd:5 ...... ..... &lx
index 33b45611f20e8eb4dd6edab3598abda8eb25a645..23748695a1421ca044cb7d0f94a38f0e85ee2ec3 100644 (file)
@@ -183,3 +183,4 @@ static bool trans_saa(DisasContext *ctx, arg_saa *a, MemOp mop)
 }
 
 TRANS(SAA,  trans_saa, MO_32);
+TRANS(SAAD, trans_saa, MO_64);