SEQI 011100 rs:5 rt:5 imm:s10 101110 &cmpi
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
+
&lx base index rd
@lx ...... base:5 index:5 rd:5 ...... ..... &lx
LWX 011111 ..... ..... ..... 00000 001010 @lx
TRANS(LWX, trans_lx, MO_SL);
TRANS(LWUX, trans_lx, MO_UL);
TRANS(LDX, trans_lx, MO_UQ);
+
+static bool trans_saa(DisasContext *ctx, arg_saa *a, MemOp mop)
+{
+ TCGv_i64 addr = tcg_temp_new_i64();
+ TCGv_i64 value = tcg_temp_new_i64();
+ TCGv_i64 old = tcg_temp_new_i64();
+ MemOp amo = mo_endian(ctx) | mop | MO_ALIGN;
+
+ gen_base_offset_addr(ctx, addr, a->base, 0);
+ gen_load_gpr(value, a->rt);
+ tcg_gen_atomic_fetch_add_i64(old, addr, value, ctx->mem_idx, amo);
+ return true;
+}
+
+TRANS(SAA, trans_saa, MO_32);