All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1563810162081.40323@bt.com>

diff --git a/a/2.bin b/a/2.bin
deleted file mode 100644
index f079080..0000000
--- a/a/2.bin
+++ /dev/null
@@ -1,3300 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<style type="text/css" style="display:none"><!-- P { margin-top: 0px; margin-bottom: 0px; } .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(128, 0, 0); }--></style>
-</head>
-<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
-<p></p>
-<div><span style="font-size: 12pt;">Preparation for splitting MO_64 out from TCGMemOp into new accelerator</span><br>
-</div>
-<div>independent MemOp.</div>
-<div><br>
-</div>
-<div>As MO_64 will be a value of MemOp, existing TCGMemOp comparisons and</div>
-<div>coercions will trigger -Wenum-compare and -Wenum-conversion.</div>
-<div><br>
-</div>
-<div>Signed-off-by: Tony Nguyen &lt;tony.nguyen@bt.com&gt;</div>
-<div>---</div>
-<div>&nbsp;target/arm/sve_helper.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; 2 &#43;-</div>
-<div>&nbsp;target/arm/translate-a64.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 270 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;------------------</div>
-<div>&nbsp;target/arm/translate-sve.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;18 &#43;--</div>
-<div>&nbsp;target/arm/translate-vfp.inc.c &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>
-<div>&nbsp;target/arm/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;30 &#43;&#43;--</div>
-<div>&nbsp;target/i386/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | 122 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;--------</div>
-<div>&nbsp;target/mips/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; 2 &#43;-</div>
-<div>&nbsp;target/ppc/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;28 &#43;&#43;--</div>
-<div>&nbsp;target/ppc/translate/fp-impl.inc.c &nbsp;| &nbsp; 4 &#43;-</div>
-<div>&nbsp;target/ppc/translate/vmx-impl.inc.c | &nbsp;34 &#43;&#43;---</div>
-<div>&nbsp;target/ppc/translate/vsx-impl.inc.c | &nbsp;18 &#43;--</div>
-<div>&nbsp;target/s390x/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>
-<div>&nbsp;target/s390x/translate_vx.inc.c &nbsp; &nbsp; | &nbsp; 6 &#43;-</div>
-<div>&nbsp;target/s390x/vec.h &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>
-<div>&nbsp;target/sparc/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>
-<div>&nbsp;tcg/aarch64/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;20 &#43;--</div>
-<div>&nbsp;tcg/arm/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;12 &#43;-</div>
-<div>&nbsp;tcg/i386/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;42 &#43;&#43;&#43;---</div>
-<div>&nbsp;tcg/mips/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;12 &#43;-</div>
-<div>&nbsp;tcg/ppc/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;18 &#43;--</div>
-<div>&nbsp;tcg/riscv/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 6 &#43;-</div>
-<div>&nbsp;tcg/s390/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;10 &#43;-</div>
-<div>&nbsp;tcg/sparc/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 8 &#43;-</div>
-<div>&nbsp;tcg/tcg-op-gvec.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | 132 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;---------</div>
-<div>&nbsp;tcg/tcg-op-vec.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;14 &#43;-</div>
-<div>&nbsp;tcg/tcg-op.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;24 &#43;&#43;--</div>
-<div>&nbsp;tcg/tcg.h &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; 9 &#43;-</div>
-<div>&nbsp;27 files changed, 430 insertions(&#43;), 427 deletions(-)</div>
-<div><br>
-</div>
-<div>diff --git a/target/arm/sve_helper.c b/target/arm/sve_helper.c</div>
-<div>index fa705c4..1cfd746 100644</div>
-<div>--- a/target/arm/sve_helper.c</div>
-<div>&#43;&#43;&#43; b/target/arm/sve_helper.c</div>
-<div>@@ -5165,7 &#43;5165,7 @@ static inline void sve_ldff1_zd(CPUARMState *env, void *vd, void *vg, void *vm,</div>
-<div>&nbsp; &nbsp; &nbsp;target_ulong addr;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* Skip to the first true predicate. &nbsp;*/</div>
-<div>- &nbsp; &nbsp;reg_off = find_next_active(vg, 0, reg_max, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;reg_off = find_next_active(vg, 0, reg_max, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;if (likely(reg_off &lt; reg_max)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Perform one normal read, which will fault or not. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_helper_retaddr(ra);</div>
-<div>diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c</div>
-<div>index 0b92e6d..3f9d103 100644</div>
-<div>--- a/target/arm/translate-a64.c</div>
-<div>&#43;&#43;&#43; b/target/arm/translate-a64.c</div>
-<div>@@ -463,7 &#43;463,7 @@ static inline int fp_reg_offset(DisasContext *s, int regno, TCGMemOp size)</div>
-<div>&nbsp;/* Offset of the high half of the 128 bit vector Qn */</div>
-<div>&nbsp;static inline int fp_reg_hi_offset(DisasContext *s, int regno)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;return vec_reg_offset(s, regno, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;return vec_reg_offset(s, regno, 1, MO_UQ);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp;/* Convenience accessors for reading and writing single and double</div>
-<div>@@ -476,7 &#43;476,7 @@ static TCGv_i64 read_fp_dreg(DisasContext *s, int reg)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i64 v = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_gen_ld_i64(v, cpu_env, fp_reg_offset(s, reg, MO_64));</div>
-<div>&#43; &nbsp; &nbsp;tcg_gen_ld_i64(v, cpu_env, fp_reg_offset(s, reg, MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp;return v;</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -501,7 &#43;501,7 @@ static TCGv_i32 read_fp_hreg(DisasContext *s, int reg)</div>
-<div>&nbsp; */</div>
-<div>&nbsp;static void clear_vec_high(DisasContext *s, bool is_q, int rd)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, rd, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, rd, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;unsigned vsz = vec_full_reg_size(s);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>
-<div>@@ -516,7 &#43;516,7 @@ static void clear_vec_high(DisasContext *s, bool is_q, int rd)</div>
-<div>&nbsp;</div>
-<div>&nbsp;void write_fp_dreg(DisasContext *s, int reg, TCGv_i64 v)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, reg, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, reg, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_st_i64(v, cpu_env, ofs);</div>
-<div>&nbsp; &nbsp; &nbsp;clear_vec_high(s, false, reg);</div>
-<div>@@ -918,7 &#43;918,7 @@ static void do_fp_st(DisasContext *s, int srcidx, TCGv_i64 tcg_addr, int size)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;/* This writes the bottom N bits of a 128 bit wide vector to memory */</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tmp = tcg_temp_new_i64();</div>
-<div>- &nbsp; &nbsp;tcg_gen_ld_i64(tmp, cpu_env, fp_reg_offset(s, srcidx, MO_64));</div>
-<div>&#43; &nbsp; &nbsp;tcg_gen_ld_i64(tmp, cpu_env, fp_reg_offset(s, srcidx, MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp;if (size &lt; 4) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(tmp, tcg_addr, get_mem_index(s),</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data &#43; size);</div>
-<div>@@ -928,10 &#43;928,10 @@ static void do_fp_st(DisasContext *s, int srcidx, TCGv_i64 tcg_addr, int size)</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(tmp, be ? tcg_hiaddr : tcg_addr, get_mem_index(s),</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tmp, cpu_env, fp_reg_hi_offset(s, srcidx));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(tmp, be ? tcg_addr : tcg_hiaddr, get_mem_index(s),</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_hiaddr);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -960,13 &#43;960,13 @@ static void do_fp_ld(DisasContext *s, int destidx, TCGv_i64 tcg_addr, int size)</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(tmplo, be ? tcg_hiaddr : tcg_addr, get_mem_index(s),</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(tmphi, be ? tcg_addr : tcg_hiaddr, get_mem_index(s),</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_hiaddr);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_gen_st_i64(tmplo, cpu_env, fp_reg_offset(s, destidx, MO_64));</div>
-<div>&#43; &nbsp; &nbsp;tcg_gen_st_i64(tmplo, cpu_env, fp_reg_offset(s, destidx, MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_st_i64(tmphi, cpu_env, fp_reg_hi_offset(s, destidx));</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tmplo);</div>
-<div>@@ -1011,8 &#43;1011,8 @@ static void read_vec_element(DisasContext *s, TCGv_i64 tcg_dest, int srcidx,</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_SL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld32s_i64(tcg_dest, cpu_env, vect_off);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>- &nbsp; &nbsp;case MO_64|MO_SIGN:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&#43; &nbsp; &nbsp;case MO_SQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tcg_dest, cpu_env, vect_off);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -1061,7 &#43;1061,7 @@ static void write_vec_element(DisasContext *s, TCGv_i64 tcg_src, int destidx,</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st32_i64(tcg_src, cpu_env, vect_off);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st_i64(tcg_src, cpu_env, vect_off);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -2207,7 &#43;2207,7 @@ static void gen_load_exclusive(DisasContext *s, int rt, int rt2,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert(size &gt;= 2);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (size == 2) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The pair must be single-copy atomic for the doubleword. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_64 | MO_ALIGN;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_UQ | MO_ALIGN;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(cpu_exclusive_val, addr, idx, memop);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;be_data == MO_LE) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extract_i64(cpu_reg(s, rt), cpu_exclusive_val, 0, 32);</div>
-<div>@@ -2219,7 &#43;2219,7 @@ static void gen_load_exclusive(DisasContext *s, int rt, int rt2,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The pair must be single-copy atomic for *each* doubleword, not</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the entire quadword, however it must be quadword aligned. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(cpu_exclusive_val, addr, idx,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop | MO_ALIGN_16);</div>
-<div>&nbsp;</div>
-<div>@@ -2271,7 &#43;2271,7 @@ static void gen_store_exclusive(DisasContext *s, int rd, int rt, int rt2,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_atomic_cmpxchg_i64(tmp, cpu_exclusive_addr,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cpu_exclusive_val, tmp,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get_mem_index(s),</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_64 | MO_ALIGN | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_UQ | MO_ALIGN | s-&gt;be_data);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_setcond_i64(TCG_COND_NE, tmp, tmp, cpu_exclusive_val);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (tb_cflags(s-&gt;base.tb) &amp; CF_PARALLEL) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!HAVE_CMPXCHG128) {</div>
-<div>@@ -2355,7 &#43;2355,7 @@ static void gen_compare_and_swap_pair(DisasContext *s, int rs, int rt,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_atomic_cmpxchg_i64(cmp, clean_addr, cmp, val, memidx,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_64 | MO_ALIGN | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_UQ | MO_ALIGN | s-&gt;be_data);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(val);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;be_data == MO_LE) {</div>
-<div>@@ -2389,9 &#43;2389,9 @@ static void gen_compare_and_swap_pair(DisasContext *s, int rs, int rt,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Load the two words, in memory order. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(d1, clean_addr, memidx,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MO_64 | MO_ALIGN_16 | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MO_UQ | MO_ALIGN_16 | s-&gt;be_data);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_i64(a2, clean_addr, 8);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(d2, a2, memidx, MO_64 | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(d2, a2, memidx, MO_UQ | s-&gt;be_data);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Compare the two words, also in memory order. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_setcond_i64(TCG_COND_EQ, c1, d1, s1);</div>
-<div>@@ -2401,8 &#43;2401,8 @@ static void gen_compare_and_swap_pair(DisasContext *s, int rs, int rt,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* If compare equal, write back new data, else write back old data. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movcond_i64(TCG_COND_NE, c1, c2, zero, t1, d1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movcond_i64(TCG_COND_NE, c2, c2, zero, t2, d2);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c1, clean_addr, memidx, MO_64 | s-&gt;be_data);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c2, a2, memidx, MO_64 | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c1, clean_addr, memidx, MO_UQ | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c2, a2, memidx, MO_UQ | s-&gt;be_data);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(a2);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(c1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(c2);</div>
-<div>@@ -5271,7 &#43;5271,7 @@ static void handle_fp_compare(DisasContext *s, int size,</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tcg_flags = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_ptr fpst = get_fpstatus_ptr(size == MO_UW);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (size == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_vn, tcg_vm;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_vn = read_fp_dreg(s, rn);</div>
-<div>@@ -5357,7 &#43;5357,7 @@ static void disas_fp_compare(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UL;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 1:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 3:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UW;</div>
-<div>@@ -5408,7 &#43;5408,7 @@ static void disas_fp_ccomp(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UL;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 1:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 3:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UW;</div>
-<div>@@ -5474,7 &#43;5474,7 @@ static void disas_fp_csel(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UL;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 1:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 3:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UW;</div>
-<div>@@ -6279,7 &#43;6279,7 @@ static void disas_fp_imm(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UL;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 1:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 3:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UW;</div>
-<div>@@ -6585,7 &#43;6585,7 @@ static void handle_fmov(DisasContext *s, int rd, int rn, int type, bool itof)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 1:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 64 bit */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tcg_rd, cpu_env, fp_reg_offset(s, rn, MO_64));</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tcg_rd, cpu_env, fp_reg_offset(s, rn, MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 2:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 64 bits from top half */</div>
-<div>@@ -6819,9 &#43;6819,9 @@ static void disas_simd_ext(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; * extracting 64 bits from a 64:64 concatenation.</div>
-<div>&nbsp; &nbsp; &nbsp; */</div>
-<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rn, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rn, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (pos != 0) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rm, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rm, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_ext64(s, tcg_resh, tcg_resl, pos);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_i64(tcg_resh, 0);</div>
-<div>@@ -6839,22 &#43;6839,22 @@ static void disas_simd_ext(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pos -= 64;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, elt-&gt;reg, elt-&gt;elt, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, elt-&gt;reg, elt-&gt;elt, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elt&#43;&#43;;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, elt-&gt;reg, elt-&gt;elt, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, elt-&gt;reg, elt-&gt;elt, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elt&#43;&#43;;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (pos != 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_ext64(s, tcg_resh, tcg_resl, pos);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_hh = tcg_temp_new_i64();</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_hh, elt-&gt;reg, elt-&gt;elt, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_hh, elt-&gt;reg, elt-&gt;elt, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_ext64(s, tcg_hh, tcg_resh, pos);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_hh);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resl);</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resh);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -6895,12 &#43;6895,12 @@ static void disas_simd_tb(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_resh = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (is_tblx) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_i64(tcg_resl, 0);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;if (is_tblx &amp;&amp; is_q) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_i64(tcg_resh, 0);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -6908,11 &#43;6908,11 @@ static void disas_simd_tb(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_idx = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_regno = tcg_const_i32(rn);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_numregs = tcg_const_i32(len &#43; 1);</div>
-<div>- &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;gen_helper_simd_tbl(tcg_resl, cpu_env, tcg_resl, tcg_idx,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_regno, tcg_numregs);</div>
-<div>&nbsp; &nbsp; &nbsp;if (is_q) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_simd_tbl(tcg_resh, cpu_env, tcg_resh, tcg_idx,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_regno, tcg_numregs);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -6920,9 &#43;6920,9 @@ static void disas_simd_tb(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_regno);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_numregs);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resl);</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resh);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -7009,9 &#43;7009,9 @@ static void disas_simd_zip_trn(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resl);</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resh);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -7625,9 &#43;7625,9 @@ static void disas_simd_mod_imm(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* ORR or BIC, with BIC negation to AND handled above. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_neg) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_andi, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_andi, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_ori, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_ori, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;}</div>
-<div>@@ -7702,7 &#43;7702,7 @@ static void disas_simd_scalar_pairwise(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UW;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = extract32(size, 0, 1) ? MO_64 : MO_UL;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = extract32(size, 0, 1) ? MO_UQ : MO_UL;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!fp_access_check(s)) {</div>
-<div>@@ -7716,13 &#43;7716,13 @@ static void disas_simd_scalar_pairwise(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (size == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op1 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, 0, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rn, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rn, 1, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x3b: /* ADDP */</div>
-<div>@@ -8085,9 &#43;8085,9 @@ static void handle_vec_simd_sqshrn(DisasContext *s, bool is_scalar, bool is_q,</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (round) {</div>
-<div>@@ -8155,9 &#43;8155,9 @@ static void handle_simd_qshl(DisasContext *s, bool scalar, bool is_q,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; maxpass; pass&#43;&#43;) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_op, cpu_env, tcg_op, tcg_shift);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -8228,11 &#43;8228,11 @@ static void handle_simd_intfp_conv(DisasContext *s, int rd, int rn,</div>
-<div>&nbsp; &nbsp; &nbsp;TCGMemOp mop = size | (is_signed ? MO_SIGN : 0);</div>
-<div>&nbsp; &nbsp; &nbsp;int pass;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (fracbits || size == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (fracbits || size == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_shift = tcg_const_i32(fracbits);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (size == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_int64 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_double = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>@@ -8249,7 &#43;8249,7 @@ static void handle_simd_intfp_conv(DisasContext *s, int rd, int rn,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (elements == 1) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_fp_dreg(s, rd, tcg_double);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_double, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_double, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -8331,7 &#43;8331,7 @@ static void handle_simd_shift_intfp_conv(DisasContext *s, bool is_scalar,</div>
-<div>&nbsp; &nbsp; &nbsp;int immhb = immh &lt;&lt; 3 | immb;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (immh &amp; 8) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!is_scalar &amp;&amp; !is_q) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>@@ -8376,7 &#43;8376,7 @@ static void handle_simd_shift_fpint_conv(DisasContext *s, bool is_scalar,</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i32 tcg_rmode, tcg_shift;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (immh &amp; 0x8) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!is_scalar &amp;&amp; !is_q) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>@@ -8408,19 &#43;8408,19 @@ static void handle_simd_shift_fpint_conv(DisasContext *s, bool is_scalar,</div>
-<div>&nbsp; &nbsp; &nbsp;fracbits = (16 &lt;&lt; size) - immhb;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_shift = tcg_const_i32(fracbits);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (size == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int maxpass = is_scalar ? 1 : 2;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; maxpass; pass&#43;&#43;) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_u) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_touqd(tcg_op, tcg_op, tcg_shift, tcg_fpstatus);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_tosqd(tcg_op, tcg_op, tcg_shift, tcg_fpstatus);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clear_vec_high(s, is_q, rd);</div>
-<div>@@ -8601,7 &#43;8601,7 @@ static void disas_simd_scalar_three_reg_diff(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_neg_i64(tcg_res, tcg_res);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* fall through */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x9: /* SQDMLAL, SQDMLAL2 */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_addl_saturate_s64(tcg_res, cpu_env,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res, tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>@@ -8751,8 &#43;8751,8 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (fpopcode) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x39: /* FMLS */</div>
-<div>@@ -8760,7 &#43;8760,7 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_negd(tcg_op1, tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* fall through */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x19: /* FMLA */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_muladdd(tcg_res, tcg_op1, tcg_op2,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tcg_res, fpst);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>@@ -8820,7 &#43;8820,7 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>
-<div>@@ -8905,7 &#43;8905,7 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_tmp = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(tcg_tmp, tcg_res);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_tmp, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_tmp, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_tmp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element_i32(s, tcg_res, rd, pass, MO_UL);</div>
-<div>@@ -9381,7 &#43;9381,7 @@ static void handle_2misc_fcmp_zero(DisasContext *s, int opcode,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bool is_scalar, bool is_u, bool is_q,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int size, int rn, int rd)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;bool is_double = (size == MO_64);</div>
-<div>&#43; &nbsp; &nbsp;bool is_double = (size == MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_ptr fpst;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (!fp_access_check(s)) {</div>
-<div>@@ -9419,13 &#43;9419,13 @@ static void handle_2misc_fcmp_zero(DisasContext *s, int opcode,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (swap) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_res, tcg_zero, tcg_op, fpst);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_res, tcg_op, tcg_zero, fpst);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_zero);</div>
-<div>@@ -9526,7 &#43;9526,7 @@ static void handle_2misc_reciprocal(DisasContext *s, int opcode,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int pass;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x3d: /* FRECPE */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_recpe_f64(tcg_res, tcg_op, fpst);</div>
-<div>@@ -9540,7 &#43;9540,7 @@ static void handle_2misc_reciprocal(DisasContext *s, int opcode,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>
-<div>@@ -9615,7 &#43;9615,7 @@ static void handle_2misc_narrow(DisasContext *s, bool scalar,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (scalar) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, size &#43; 1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[pass] = tcg_temp_new_i32();</div>
-<div>&nbsp;</div>
-<div>@@ -9711,15 &#43;9711,15 @@ static void handle_2misc_satacc(DisasContext *s, bool is_scalar, bool is_u,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int pass;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rd, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rd, rd, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_u) { /* USQADD */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_uqadd_s64(tcg_rd, cpu_env, tcg_rn, tcg_rd);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else { /* SUQADD */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_sqadd_u64(tcg_rd, cpu_env, tcg_rn, tcg_rd);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rd);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rn);</div>
-<div>@@ -9776,7 &#43;9776,7 @@ static void handle_2misc_satacc(DisasContext *s, bool is_scalar, bool is_u,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_scalar) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_zero = tcg_const_i64(0);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_zero, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_zero, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_zero);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element_i32(s, tcg_rd, rd, pass, MO_UL);</div>
-<div>@@ -10146,7 &#43;10146,7 @@ static void handle_vec_simd_wshli(DisasContext *s, bool is_q, bool is_u,</div>
-<div>&nbsp; &nbsp; &nbsp; * so if rd == rn we would overwrite parts of our input.</div>
-<div>&nbsp; &nbsp; &nbsp; * So load everything right now and use shifts in the main loop.</div>
-<div>&nbsp; &nbsp; &nbsp; */</div>
-<div>- &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, is_q ? 1 : 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, is_q ? 1 : 0, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;for (i = 0; i &lt; elements; i&#43;&#43;) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_i64(tcg_rd, tcg_rn, i * esize);</div>
-<div>@@ -10183,7 &#43;10183,7 @@ static void handle_vec_simd_shrn(DisasContext *s, bool is_q,</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_rn = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_rd = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_final = tcg_temp_new_i64();</div>
-<div>- &nbsp; &nbsp;read_vec_element(s, tcg_final, rd, is_q ? 1 : 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_final, rd, is_q ? 1 : 0, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (round) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint64_t round_const = 1ULL &lt;&lt; (shift - 1);</div>
-<div>@@ -10201,9 &#43;10201,9 @@ static void handle_vec_simd_shrn(DisasContext *s, bool is_q,</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;if (round) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_round);</div>
-<div>@@ -10335,8 &#43;10335,8 @@ static void handle_3rd_widening(DisasContext *s, int is_q, int is_u, int size,</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (accop != 0) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* size == 2 means two 32x32-&gt;64 operations; this is worth special</div>
-<div>@@ -10522,8 &#43;10522,8 @@ static void handle_3rd_widening(DisasContext *s, int is_q, int is_u, int size,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[0]);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[1]);</div>
-<div>&nbsp;}</div>
-<div>@@ -10546,7 &#43;10546,7 @@ static void handle_3rd_wide(DisasContext *s, int is_q, int is_u, int size,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NeonGenWidenFn *widenfn = widenfns[size][is_u];</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element_i32(s, tcg_op2, rm, part &#43; pass, MO_UL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;widenfn(tcg_op2_wide, tcg_op2);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_op2);</div>
-<div>@@ -10558,7 &#43;10558,7 @@ static void handle_3rd_wide(DisasContext *s, int is_q, int is_u, int size,</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;}</div>
-<div>@@ -10589,8 &#43;10589,8 @@ static void handle_3rd_narrowing(DisasContext *s, int is_q, int is_u, int size,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NeonGenNarrowFn *gennarrow = narrowfns[size][is_u];</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_neon_addl(size, (opcode == 6), tcg_wideres, tcg_op1, tcg_op2);</div>
-<div>&nbsp;</div>
-<div>@@ -10621,12 &#43;10621,12 @@ static void handle_pmull_64(DisasContext *s, int is_q, int rd, int rn, int rm)</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, is_q, MO_64);</div>
-<div>- &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, is_q, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, is_q, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, is_q, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;gen_helper_neon_pmull_64_lo(tcg_res, tcg_op1, tcg_op2);</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 0, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;gen_helper_neon_pmull_64_hi(tcg_res, tcg_op1, tcg_op2);</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 1, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>
-<div>@@ -10814,8 &#43;10814,8 @@ static void handle_simd_3same_pair(DisasContext *s, int is_q, int u, int opcode,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int passreg = (pass == 0) ? rn : rm;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, passreg, 0, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, passreg, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, passreg, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, passreg, 1, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[pass] = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>
-<div>@@ -10846,7 &#43;10846,7 @@ static void handle_simd_3same_pair(DisasContext *s, int is_q, int u, int opcode,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>@@ -10971,7 &#43;10971,7 @@ static void disas_simd_3same_float(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;handle_simd_3same_pair(s, is_q, 0, fpopcode, size ? MO_64 : MO_UL,</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;handle_simd_3same_pair(s, is_q, 0, fpopcode, size ? MO_UQ : MO_UL,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rn, rm, rd);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>&nbsp; &nbsp; &nbsp;case 0x1b: /* FMULX */</div>
-<div>@@ -11155,12 &#43;11155,12 @@ static void disas_simd_3same_int(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;handle_3same_64(s, opcode, u, tcg_res, tcg_op1, tcg_op2);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>
-<div>@@ -11714,7 &#43;11714,7 @@ static void handle_2misc_widening(DisasContext *s, int opcode, bool is_q,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_op);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>@@ -11774,7 &#43;11774,7 @@ static void handle_rev(DisasContext *s, int opcode, bool u,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap32_i64(tcg_tmp, tcg_tmp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(tcg_tmp, tcg_tmp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -11803,8 &#43;11803,8 @@ static void handle_rev(DisasContext *s, int opcode, bool u,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_rn, off, esize);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, 0, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd_hi, rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd_hi, rd, 1, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rd_hi);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rd);</div>
-<div>@@ -11839,7 &#43;11839,7 @@ static void handle_2misc_pairwise(DisasContext *s, int opcode, bool u,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rn, pass * 2 &#43; 1, memop);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_add_i64(tcg_res[pass], tcg_op1, tcg_op2);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (accum) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_add_i64(tcg_res[pass], tcg_res[pass], tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -11859,11 &#43;11859,11 @@ static void handle_2misc_pairwise(DisasContext *s, int opcode, bool u,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[pass] = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_res[pass], tcg_op);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (accum) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (size == 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_addl_u16(tcg_res[pass],</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tcg_res[pass], tcg_op);</div>
-<div>@@ -11879,7 &#43;11879,7 @@ static void handle_2misc_pairwise(DisasContext *s, int opcode, bool u,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_const_i64(0);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;}</div>
-<div>@@ -11909,7 &#43;11909,7 @@ static void handle_shll(DisasContext *s, bool is_q, int size, int rn, int rd)</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;}</div>
-<div>@@ -12233,12 &#43;12233,12 @@ static void disas_simd_two_reg_misc(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;handle_2misc_64(s, opcode, u, tcg_res, tcg_op,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_rmode, tcg_fpstatus);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>
-<div>@@ -12856,7 &#43;12856,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;is_fp16 = true;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL: /* single precision */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64: /* double precision */</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ: /* double precision */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>
-<div>@@ -12875,7 &#43;12875,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;is_fp16 = true;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>
-<div>@@ -12886,7 &#43;12886,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp;default: /* integer */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (size) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UB:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -12906,7 &#43;12906,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;index = h &lt;&lt; 1 | l;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm |= m &lt;&lt; 4;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (l || !is_q) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>@@ -12946,7 &#43;12946,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vec_full_reg_offset(s, rn),</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vec_full_reg_offset(s, rm), fpst,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; is_q ? 16 : 8, vec_full_reg_size(s), data,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; size == MO_64</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; size == MO_UQ</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? gen_helper_gvec_fcmlas_idx</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : gen_helper_gvec_fcmlah_idx);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_ptr(fpst);</div>
-<div>@@ -12976,13 &#43;12976,13 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;assert(is_fp &amp;&amp; is_q &amp;&amp; !is_long);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, index, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, index, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (16 * u &#43; opcode) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x05: /* FMLS */</div>
-<div>@@ -12990,7 &#43;12990,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_negd(tcg_op, tcg_op);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* fall through */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x01: /* FMLA */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_muladdd(tcg_res, tcg_op, tcg_idx, tcg_res, fpst);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x09: /* FMUL */</div>
-<div>@@ -13003,7 &#43;13003,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -13241,7 &#43;13241,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Accumulating op: handle accumulate step */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x2: /* SMLAL, SMLAL2, UMLAL, UMLAL2 */</div>
-<div>@@ -13316,7 &#43;13316,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Accumulating op: handle accumulate step */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x2: /* SMLAL, SMLAL2, UMLAL, UMLAL2 */</div>
-<div>@@ -13352,7 &#43;13352,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -13639,14 &#43;13639,14 @@ static void disas_crypto_three_reg_sha512(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_rotli_i64(tcg_res[pass], tcg_op2, 1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_xor_i64(tcg_res[pass], tcg_res[pass], tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>
-<div>@@ -13750,9 &#43;13750,9 @@ static void disas_crypto_four_reg(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op3, ra, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op3, ra, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (op0 == 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* EOR3 */</div>
-<div>@@ -13763,8 &#43;13763,8 @@ static void disas_crypto_four_reg(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_xor_i64(tcg_res[pass], tcg_res[pass], tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>
-<div>@@ -13832,14 &#43;13832,14 @@ static void disas_crypto_xar(DisasContext *s, uint32_t insn)</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_temp_new_i64();</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_xor_i64(tcg_res[pass], tcg_op1, tcg_op2);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_rotri_i64(tcg_res[pass], tcg_res[pass], imm6);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>
-<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>
-<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>
-<div>diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c</div>
-<div>index f7c891d..423c461 100644</div>
-<div>--- a/target/arm/translate-sve.c</div>
-<div>&#43;&#43;&#43; b/target/arm/translate-sve.c</div>
-<div>@@ -1708,7 &#43;1708,7 @@ static void do_sat_addsub_vec(DisasContext *s, int esz, int rd, int rn,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t64);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (u) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (d) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_sve_uqsubi_d(dptr, nptr, val, desc);</div>
-<div>@@ -1862,7 &#43;1862,7 @@ static bool do_zz_dbm(DisasContext *s, arg_rr_dbm *a, GVecGen2iFn *gvec_fn)</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;if (sve_access_check(s)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unsigned vsz = vec_full_reg_size(s);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;gvec_fn(MO_64, vec_full_reg_offset(s, a-&gt;rd),</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;gvec_fn(MO_UQ, vec_full_reg_offset(s, a-&gt;rd),</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_full_reg_offset(s, a-&gt;rn), imm, vsz, vsz);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;return true;</div>
-<div>@@ -2076,7 &#43;2076,7 @@ static bool trans_INSR_f(DisasContext *s, arg_rrr_esz *a)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;if (sve_access_check(s)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 t = tcg_temp_new_i64();</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(t, cpu_env, vec_reg_offset(s, a-&gt;rm, 0, MO_64));</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(t, cpu_env, vec_reg_offset(s, a-&gt;rm, 0, MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_insr_i64(s, a, t);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -3327,7 &#43;3327,7 @@ static bool trans_SUBR_zzi(DisasContext *s, arg_rri_esz *a)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_sve_subri_d,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64,</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.scalar_first = true }</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>@@ -4571,7 &#43;4571,7 @@ static const TCGMemOp dtype_mop[16] = {</div>
-<div>&nbsp; &nbsp; &nbsp;MO_UB, MO_UB, MO_UB, MO_UB,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_SL, MO_UW, MO_UW, MO_UW,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_SW, MO_SW, MO_UL, MO_UL,</div>
-<div>- &nbsp; &nbsp;MO_SB, MO_SB, MO_SB, MO_Q</div>
-<div>&#43; &nbsp; &nbsp;MO_SB, MO_SB, MO_SB, MO_UQ</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;#define dtype_msz(x) &nbsp;(dtype_mop[x] &amp; MO_SIZE)</div>
-<div>@@ -5261,7 &#43;5261,7 @@ static bool trans_LD1_zprz(DisasContext *s, arg_LD1_zprz *a)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn32[be][a-&gt;ff][a-&gt;xs][a-&gt;u][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn64[be][a-&gt;ff][a-&gt;xs][a-&gt;u][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -5289,7 &#43;5289,7 @@ static bool trans_LD1_zpiz(DisasContext *s, arg_LD1_zpiz *a)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn32[be][a-&gt;ff][0][a-&gt;u][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn64[be][a-&gt;ff][2][a-&gt;u][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -5367,7 &#43;5367,7 @@ static bool trans_ST1_zprz(DisasContext *s, arg_ST1_zprz *a)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn32[be][a-&gt;xs][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn64[be][a-&gt;xs][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -5395,7 &#43;5395,7 @@ static bool trans_ST1_zpiz(DisasContext *s, arg_ST1_zpiz *a)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn32[be][0][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn64[be][2][a-&gt;msz];</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>diff --git a/target/arm/translate-vfp.inc.c b/target/arm/translate-vfp.inc.c</div>
-<div>index 5e0cd63..d71944d 100644</div>
-<div>--- a/target/arm/translate-vfp.inc.c</div>
-<div>&#43;&#43;&#43; b/target/arm/translate-vfp.inc.c</div>
-<div>@@ -40,7 &#43;40,7 @@ uint64_t vfp_expand_imm(int size, uint8_t imm8)</div>
-<div>&nbsp; &nbsp; &nbsp;uint64_t imm;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;switch (size) {</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;imm = (extract32(imm8, 7, 1) ? 0x8000 : 0) |</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(extract32(imm8, 6, 1) ? 0x3fc0 : 0x4000) |</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;extract32(imm8, 0, 6);</div>
-<div>@@ -1960,7 &#43;1960,7 @@ static bool trans_VMOV_imm_dp(DisasContext *s, arg_VMOV_imm_dp *a)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;fd = tcg_const_i64(vfp_expand_imm(MO_64, a-&gt;imm));</div>
-<div>&#43; &nbsp; &nbsp;fd = tcg_const_i64(vfp_expand_imm(MO_UQ, a-&gt;imm));</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;for (;;) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;neon_store_reg64(fd, vd);</div>
-<div>diff --git a/target/arm/translate.c b/target/arm/translate.c</div>
-<div>index 5510ecd..306ef24 100644</div>
-<div>--- a/target/arm/translate.c</div>
-<div>&#43;&#43;&#43; b/target/arm/translate.c</div>
-<div>@@ -1171,7 &#43;1171,7 @@ static void gen_aa32_ld_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32,</div>
-<div>&nbsp;static inline void gen_aa32_ld64(DisasContext *s, TCGv_i64 val,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TCGv_i32 a32, int index)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;gen_aa32_ld_i64(s, val, a32, index, MO_Q | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp;gen_aa32_ld_i64(s, val, a32, index, MO_UQ | s-&gt;be_data);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_aa32_st_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32,</div>
-<div>@@ -1194,7 &#43;1194,7 @@ static void gen_aa32_st_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32,</div>
-<div>&nbsp;static inline void gen_aa32_st64(DisasContext *s, TCGv_i64 val,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TCGv_i32 a32, int index)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;gen_aa32_st_i64(s, val, a32, index, MO_Q | s-&gt;be_data);</div>
-<div>&#43; &nbsp; &nbsp;gen_aa32_st_i64(s, val, a32, index, MO_UQ | s-&gt;be_data);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp;DO_GEN_LD(8s, MO_SB)</div>
-<div>@@ -1455,7 &#43;1455,7 @@ static void neon_load_element64(TCGv_i64 var, int reg, int ele, TCGMemOp mop)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld32u_i64(var, cpu_env, offset);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(var, cpu_env, offset);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -1502,7 &#43;1502,7 @@ static void neon_store_element64(int reg, int ele, TCGMemOp size, TCGv_i64 var)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st32_i64(var, cpu_env, offset);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st_i64(var, cpu_env, offset);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -4278,7 &#43;4278,7 @@ const GVecGen2i ssra_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_ssra,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_usra8_i64(TCGv_i64 d, TCGv_i64 a, int64_t shift)</div>
-<div>@@ -4336,7 &#43;4336,7 @@ const GVecGen2i usra_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_usra,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64, },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ, },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_shr8_ins_i64(TCGv_i64 d, TCGv_i64 a, int64_t shift)</div>
-<div>@@ -4416,7 &#43;4416,7 @@ const GVecGen2i sri_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sri,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_shl8_ins_i64(TCGv_i64 d, TCGv_i64 a, int64_t shift)</div>
-<div>@@ -4494,7 &#43;4494,7 @@ const GVecGen2i sli_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sli,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_mla8_i32(TCGv_i32 d, TCGv_i32 a, TCGv_i32 b)</div>
-<div>@@ -4590,7 &#43;4590,7 @@ const GVecGen3 mla_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mla,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;const GVecGen3 mls_op[4] = {</div>
-<div>@@ -4614,7 &#43;4614,7 @@ const GVecGen3 mls_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mls,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;/* CMTST : test is &quot;if (X &amp; Y != 0)&quot;. */</div>
-<div>@@ -4658,7 &#43;4658,7 @@ const GVecGen3 cmtst_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.fniv = gen_cmtst_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_cmtst,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_uqadd_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>
-<div>@@ -4696,7 &#43;4696,7 @@ const GVecGen4 uqadd_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_uqadd_d,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_uqadd,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_sqadd_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>
-<div>@@ -4734,7 &#43;4734,7 @@ const GVecGen4 sqadd_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sqadd_d,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sqadd,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_uqsub_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>
-<div>@@ -4772,7 &#43;4772,7 @@ const GVecGen4 uqsub_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_uqsub_d,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_uqsub,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_sqsub_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>
-<div>@@ -4810,7 &#43;4810,7 @@ const GVecGen4 sqsub_op[4] = {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sqsub_d,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sqsub,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>
-<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;/* Translate a NEON data processing instruction. &nbsp;Return nonzero if the</div>
-<div>diff --git a/target/i386/translate.c b/target/i386/translate.c</div>
-<div>index 0e863d4..8d62b37 100644</div>
-<div>--- a/target/i386/translate.c</div>
-<div>&#43;&#43;&#43; b/target/i386/translate.c</div>
-<div>@@ -323,7 &#43;323,7 @@ static inline bool byte_reg_is_xH(DisasContext *s, int reg)</div>
-<div>&nbsp;static inline TCGMemOp mo_pushpop(DisasContext *s, TCGMemOp ot)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;if (CODE64(s)) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;return ot == MO_UW ? MO_UW : MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;return ot == MO_UW ? MO_UW : MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return ot;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -332,14 &#43;332,14 @@ static inline TCGMemOp mo_pushpop(DisasContext *s, TCGMemOp ot)</div>
-<div>&nbsp;/* Select the size of the stack pointer. &nbsp;*/</div>
-<div>&nbsp;static inline TCGMemOp mo_stacksize(DisasContext *s)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;return CODE64(s) ? MO_64 : s-&gt;ss32 ? MO_UL : MO_UW;</div>
-<div>&#43; &nbsp; &nbsp;return CODE64(s) ? MO_UQ : s-&gt;ss32 ? MO_UL : MO_UW;</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp;/* Select only size 64 else 32. &nbsp;Used for SSE operand sizes. &nbsp;*/</div>
-<div>&nbsp;static inline TCGMemOp mo_64_32(TCGMemOp ot)</div>
-<div>&nbsp;{</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp;return ot == MO_64 ? MO_64 : MO_UL;</div>
-<div>&#43; &nbsp; &nbsp;return ot == MO_UQ ? MO_UQ : MO_UL;</div>
-<div>&nbsp;#else</div>
-<div>&nbsp; &nbsp; &nbsp;return MO_UL;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -378,7 &#43;378,7 @@ static void gen_op_mov_reg_v(DisasContext *s, TCGMemOp ot, int reg, TCGv t0)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(cpu_regs[reg], t0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_regs[reg], t0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -456,7 &#43;456,7 @@ static void gen_lea_v_seg(DisasContext *s, TCGMemOp aflag, TCGv a0,</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;switch (aflag) {</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ovr_seg &lt; 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(s-&gt;A0, a0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>@@ -492,7 &#43;492,7 @@ static void gen_lea_v_seg(DisasContext *s, TCGMemOp aflag, TCGv a0,</div>
-<div>&nbsp; &nbsp; &nbsp;if (ovr_seg &gt;= 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv seg = cpu_seg_base[ovr_seg];</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (aflag == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (aflag == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_add_tl(s-&gt;A0, a0, seg);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (CODE64(s)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;A0, a0);</div>
-<div>@@ -1469,7 &#43;1469,7 @@ static void gen_shift_flags(DisasContext *s, TCGMemOp ot, TCGv result,</div>
-<div>&nbsp;static void gen_shift_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int is_right, int is_arith)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;target_ulong mask = (ot == MO_64 ? 0x3f : 0x1f);</div>
-<div>&#43; &nbsp; &nbsp;target_ulong mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* load */</div>
-<div>&nbsp; &nbsp; &nbsp;if (op1 == OR_TMP0) {</div>
-<div>@@ -1505,7 &#43;1505,7 @@ static void gen_shift_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>
-<div>&nbsp;static void gen_shift_rm_im(DisasContext *s, TCGMemOp ot, int op1, int op2,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int is_right, int is_arith)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;int mask = (ot == MO_64 ? 0x3f : 0x1f);</div>
-<div>&#43; &nbsp; &nbsp;int mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* load */</div>
-<div>&nbsp; &nbsp; &nbsp;if (op1 == OR_TMP0)</div>
-<div>@@ -1544,7 &#43;1544,7 @@ static void gen_shift_rm_im(DisasContext *s, TCGMemOp ot, int op1, int op2,</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void gen_rot_rm_T1(DisasContext *s, TCGMemOp ot, int op1, int is_right)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;target_ulong mask = (ot == MO_64 ? 0x3f : 0x1f);</div>
-<div>&#43; &nbsp; &nbsp;target_ulong mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i32 t0, t1;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* load */</div>
-<div>@@ -1630,7 &#43;1630,7 @@ static void gen_rot_rm_T1(DisasContext *s, TCGMemOp ot, int op1, int is_right)</div>
-<div>&nbsp;static void gen_rot_rm_im(DisasContext *s, TCGMemOp ot, int op1, int op2,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int is_right)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;int mask = (ot == MO_64 ? 0x3f : 0x1f);</div>
-<div>&#43; &nbsp; &nbsp;int mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>
-<div>&nbsp; &nbsp; &nbsp;int shift;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* load */</div>
-<div>@@ -1729,7 &#43;1729,7 @@ static void gen_rotc_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rcrl(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rcrq(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -1748,7 &#43;1748,7 @@ static void gen_rotc_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rcll(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rclq(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -1764,7 &#43;1764,7 @@ static void gen_rotc_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>
-<div>&nbsp;static void gen_shiftd_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bool is_right, TCGv count_in)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;target_ulong mask = (ot == MO_64 ? 63 : 31);</div>
-<div>&#43; &nbsp; &nbsp;target_ulong mask = (ot == MO_UQ ? 63 : 31);</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv count;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* load */</div>
-<div>@@ -1983,7 &#43;1983,7 @@ static AddressParts gen_lea_modrm_0(CPUX86State *env, DisasContext *s,</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;switch (s-&gt;aflag) {</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;havesib = 0;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (rm == 4) {</div>
-<div>@@ -2192,7 &#43;2192,7 @@ static inline uint32_t insn_get(CPUX86State *env, DisasContext *s, TCGMemOp ot)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ret = x86_ldl_code(env, s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>@@ -2443,7 &#43;2443,7 @@ static void gen_popa(DisasContext *s)</div>
-<div>&nbsp;static void gen_enter(DisasContext *s, int esp_addend, int level)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;TCGMemOp d_ot = mo_pushpop(s, s-&gt;dflag);</div>
-<div>- &nbsp; &nbsp;TCGMemOp a_ot = CODE64(s) ? MO_64 : s-&gt;ss32 ? MO_UL : MO_UW;</div>
-<div>&#43; &nbsp; &nbsp;TCGMemOp a_ot = CODE64(s) ? MO_UQ : s-&gt;ss32 ? MO_UL : MO_UW;</div>
-<div>&nbsp; &nbsp; &nbsp;int size = 1 &lt;&lt; d_ot;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* Push BP; compute FrameTemp into T1. &nbsp;*/</div>
-<div>@@ -3150,8 &#43;3150,8 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x6e: /* movd mm, ea */</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 0);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st_tl(s-&gt;T0, cpu_env,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;offsetof(CPUX86State, fpregs[reg].mmx));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>
-<div>@@ -3166,8 &#43;3166,8 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x16e: /* movd xmm, ea */</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 0);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_ptr(s-&gt;ptr0, cpu_env,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offsetof(CPUX86State,xmm_regs[reg]));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_movq_mm_T0_xmm(s-&gt;ptr0, s-&gt;T0);</div>
-<div>@@ -3337,10 &#43;3337,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x7e: /* movd ea, mm */</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(s-&gt;T0, cpu_env,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offsetof(CPUX86State,fpregs[reg].mmx));</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 1);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>@@ -3351,10 &#43;3351,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x17e: /* movd ea, xmm */</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(s-&gt;T0, cpu_env,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offsetof(CPUX86State,xmm_regs[reg].ZMM_Q(0)));</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 1);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>@@ -3785,10 &#43;3785,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((b &amp; 0xff) == 0xf0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UB;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (s-&gt;dflag != MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (s-&gt;dflag != MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = (s-&gt;prefix &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_trunc_tl_i32(s-&gt;tmp2_i32, cpu_regs[reg]);</div>
-<div>@@ -3814,10 &#43;3814,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!(s-&gt;cpuid_ext_features &amp; CPUID_EXT_MOVBE)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto illegal_op;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag != MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag != MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = (s-&gt;prefix &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_lea_modrm(env, s, modrm);</div>
-<div>@@ -3861,7 &#43;3861,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext8u_tl(s-&gt;A0, cpu_regs[s-&gt;vex_v]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shr_tl(s-&gt;T0, s-&gt;T0, s-&gt;A0);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bound = tcg_const_tl(ot == MO_64 ? 63 : 31);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bound = tcg_const_tl(ot == MO_UQ ? 63 : 31);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;zero = tcg_const_tl(0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movcond_tl(TCG_COND_LEU, s-&gt;T0, s-&gt;A0, bound,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s-&gt;T0, zero);</div>
-<div>@@ -3894,7 &#43;3894,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext8u_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv bound = tcg_const_tl(ot == MO_64 ? 63 : 31);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv bound = tcg_const_tl(ot == MO_UQ ? 63 : 31);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Note that since we're using BMILG (in order to get O</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cleared) we need to store the inverse into C. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_setcond_tl(TCG_COND_LT, cpu_cc_src,</div>
-<div>@@ -3929,7 &#43;3929,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_tl(cpu_regs[reg], s-&gt;tmp3_i32);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mulu2_i64(s-&gt;T0, s-&gt;T1,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;T0, cpu_regs[R_EDX]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_i64(cpu_regs[s-&gt;vex_v], s-&gt;T0);</div>
-<div>@@ -3949,7 &#43;3949,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Note that by zero-extending the mask operand, we</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; automatically handle zero-extending the result. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>
-<div>@@ -3967,7 &#43;3967,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Note that by zero-extending the mask operand, we</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; automatically handle zero-extending the result. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>
-<div>@@ -4063,7 &#43;4063,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = mo_64_32(s-&gt;dflag);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_andi_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v], 63);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_andi_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v], 31);</div>
-<div>@@ -4071,12 &#43;4071,12 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (b == 0x1f7) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shl_tl(s-&gt;T0, s-&gt;T0, s-&gt;T1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (b == 0x2f7) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_tl(s-&gt;T0, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sar_tl(s-&gt;T0, s-&gt;T0, s-&gt;T1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;T0, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shr_tl(s-&gt;T0, s-&gt;T0, s-&gt;T1);</div>
-<div>@@ -4302,7 &#43;4302,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((b &amp; 0xfc) == 0x60) { /* pcmpXstrX */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_cc_op(s, CC_OP_EFLAGS);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The helper must use entire 64-bit gp registers */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;val |= 1 &lt;&lt; 8;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -4329,7 &#43;4329,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = mo_64_32(s-&gt;dflag);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;b = x86_ldub_code(env, s);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_rotri_tl(s-&gt;T0, s-&gt;T0, b &amp; 63);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_trunc_tl_i32(s-&gt;tmp2_i32, s-&gt;T0);</div>
-<div>@@ -4630,9 &#43;4630,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* In 64-bit mode, the default data size is 32-bit. &nbsp;Select 64-bit</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data with rex_w, and 16-bit data with 0x66; rex_w takes precedence</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; over 0x66 if both are present. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;dflag = (rex_w &gt; 0 ? MO_64 : prefixes &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;dflag = (rex_w &gt; 0 ? MO_UQ : prefixes &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* In 64-bit mode, 0x67 selects 32-bit addressing. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;aflag = (prefixes &amp; PREFIX_ADR ? MO_UL : MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;aflag = (prefixes &amp; PREFIX_ADR ? MO_UL : MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* In 16/32-bit mode, 0x66 selects the opposite data size. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;code32 ^ ((prefixes &amp; PREFIX_DATA) != 0)) {</div>
-<div>@@ -4903,7 &#43;4903,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_cc_op(s, CC_OP_MULL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mulu2_i64(cpu_regs[R_EAX], cpu_regs[R_EDX],</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;T0, cpu_regs[R_EAX]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_cc_dst, cpu_regs[R_EAX]);</div>
-<div>@@ -4956,7 &#43;4956,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_cc_op(s, CC_OP_MULL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_muls2_i64(cpu_regs[R_EAX], cpu_regs[R_EDX],</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;T0, cpu_regs[R_EAX]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_cc_dst, cpu_regs[R_EAX]);</div>
-<div>@@ -4980,7 &#43;4980,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_divl_EAX(cpu_env, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_divq_EAX(cpu_env, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -4999,7 &#43;4999,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_idivl_EAX(cpu_env, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_idivq_EAX(cpu_env, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -5024,7 &#43;5024,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CODE64(s)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (op == 2 || op == 4) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* operand size for jumps is 64 bit */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (op == 3 || op == 5) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = dflag != MO_UW ? MO_UL &#43; (rex_w == 1) : MO_UW;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (op == 6) {</div>
-<div>@@ -5145,10 &#43;5145,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp;case 0x98: /* CWDE/CBW */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (dflag) {</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UL, s-&gt;T0, R_EAX);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_tl(s-&gt;T0, s-&gt;T0);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, R_EAX, s-&gt;T0);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, R_EAX, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>@@ -5168,10 &#43;5168,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp;case 0x99: /* CDQ/CWD */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (dflag) {</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_64, s-&gt;T0, R_EAX);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UQ, s-&gt;T0, R_EAX);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_tl(s-&gt;T0, s-&gt;T0, 63);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, R_EDX, s-&gt;T0);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, R_EDX, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>@@ -5212,7 &#43;5212,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (ot) {</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_muls2_i64(cpu_regs[reg], s-&gt;T1, s-&gt;T0, s-&gt;T1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_cc_dst, cpu_regs[reg]);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_tl(cpu_cc_src, cpu_cc_dst, 63);</div>
-<div>@@ -5338,7 &#43;5338,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto illegal_op;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!(s-&gt;cpuid_ext_features &amp; CPUID_EXT_CX16)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto illegal_op;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -5636,7 &#43;5636,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = mo_b_d(b, dflag);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (s-&gt;aflag) {</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;offset_addr = x86_ldq_code(env, s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -5671,13 &#43;5671,13 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;case 0xb8 ... 0xbf: /* mov R, Iv */</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint64_t tmp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 64 bit case */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmp = x86_ldq_code(env, s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = (b &amp; 7) | REX_B(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_tl(s-&gt;T0, tmp);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, reg, s-&gt;T0);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, reg, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>@@ -7119,10 &#43;7119,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp;case 0x1c8 ... 0x1cf: /* bswap reg */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = (b &amp; 7) | REX_B(s);</div>
-<div>&nbsp;#ifdef TARGET_X86_64</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_64) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_64, s-&gt;T0, reg);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_UQ) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UQ, s-&gt;T0, reg);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(s-&gt;T0, s-&gt;T0);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, reg, s-&gt;T0);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, reg, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>@@ -7700,7 &#43;7700,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (mod == 3) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UL, s-&gt;T0, rm);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* sign extend */</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (d_ot == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (d_ot == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_tl(s-&gt;T0, s-&gt;T0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, d_ot, reg, s-&gt;T0);</div>
-<div>@@ -8014,7 &#43;8014,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm = (modrm &amp; 7) | REX_B(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = ((modrm &gt;&gt; 3) &amp; 7) | rex_r;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CODE64(s))</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UL;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((prefixes &amp; PREFIX_LOCK) &amp;&amp; (reg == 0) &amp;&amp;</div>
-<div>@@ -8071,7 &#43;8071,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm = (modrm &amp; 7) | REX_B(s);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = ((modrm &gt;&gt; 3) &amp; 7) | rex_r;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CODE64(s))</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UL;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (reg &gt;= 8) {</div>
-<div>diff --git a/target/mips/translate.c b/target/mips/translate.c</div>
-<div>index 525c7fe..1023f68 100644</div>
-<div>--- a/target/mips/translate.c</div>
-<div>&#43;&#43;&#43; b/target/mips/translate.c</div>
-<div>@@ -3766,7 &#43;3766,7 @@ static void gen_scwp(DisasContext *ctx, uint32_t base, int16_t offset,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(llval, cpu_env, offsetof(CPUMIPSState, llval_wp));</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_atomic_cmpxchg_i64(val, taddr, llval, tval,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eva ? MIPS_HFLAG_UM : ctx-&gt;mem_idx, MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eva ? MIPS_HFLAG_UM : ctx-&gt;mem_idx, MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;if (reg1 != 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_tl(cpu_gpr[reg1], 1);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>diff --git a/target/ppc/translate.c b/target/ppc/translate.c</div>
-<div>index 4a5de28..f39dd94 100644</div>
-<div>--- a/target/ppc/translate.c</div>
-<div>&#43;&#43;&#43; b/target/ppc/translate.c</div>
-<div>@@ -2470,10 &#43;2470,10 @@ GEN_QEMU_LOAD_64(ld8u, &nbsp;DEF_MEMOP(MO_UB))</div>
-<div>&nbsp;GEN_QEMU_LOAD_64(ld16u, DEF_MEMOP(MO_UW))</div>
-<div>&nbsp;GEN_QEMU_LOAD_64(ld32u, DEF_MEMOP(MO_UL))</div>
-<div>&nbsp;GEN_QEMU_LOAD_64(ld32s, DEF_MEMOP(MO_SL))</div>
-<div>-GEN_QEMU_LOAD_64(ld64, &nbsp;DEF_MEMOP(MO_Q))</div>
-<div>&#43;GEN_QEMU_LOAD_64(ld64, &nbsp;DEF_MEMOP(MO_UQ))</div>
-<div>&nbsp;</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>-GEN_QEMU_LOAD_64(ld64ur, BSWAP_MEMOP(MO_Q))</div>
-<div>&#43;GEN_QEMU_LOAD_64(ld64ur, BSWAP_MEMOP(MO_UQ))</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>&nbsp;#define GEN_QEMU_STORE_TL(stop, op) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>@@ -2502,10 &#43;2502,10 @@ static void glue(gen_qemu_, glue(stop, _i64))(DisasContext *ctx, &nbsp;\</div>
-<div>&nbsp;GEN_QEMU_STORE_64(st8, &nbsp;DEF_MEMOP(MO_UB))</div>
-<div>&nbsp;GEN_QEMU_STORE_64(st16, DEF_MEMOP(MO_UW))</div>
-<div>&nbsp;GEN_QEMU_STORE_64(st32, DEF_MEMOP(MO_UL))</div>
-<div>-GEN_QEMU_STORE_64(st64, DEF_MEMOP(MO_Q))</div>
-<div>&#43;GEN_QEMU_STORE_64(st64, DEF_MEMOP(MO_UQ))</div>
-<div>&nbsp;</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>-GEN_QEMU_STORE_64(st64r, BSWAP_MEMOP(MO_Q))</div>
-<div>&#43;GEN_QEMU_STORE_64(st64r, BSWAP_MEMOP(MO_UQ))</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>&nbsp;#define GEN_LD(name, ldop, opc, type) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>@@ -2605,7 &#43;2605,7 @@ GEN_LDEPX(lb, DEF_MEMOP(MO_UB), 0x1F, 0x02)</div>
-<div>&nbsp;GEN_LDEPX(lh, DEF_MEMOP(MO_UW), 0x1F, 0x08)</div>
-<div>&nbsp;GEN_LDEPX(lw, DEF_MEMOP(MO_UL), 0x1F, 0x00)</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>-GEN_LDEPX(ld, DEF_MEMOP(MO_Q), 0x1D, 0x00)</div>
-<div>&#43;GEN_LDEPX(ld, DEF_MEMOP(MO_UQ), 0x1D, 0x00)</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>@@ -2808,7 &#43;2808,7 @@ GEN_STEPX(stb, DEF_MEMOP(MO_UB), 0x1F, 0x06)</div>
-<div>&nbsp;GEN_STEPX(sth, DEF_MEMOP(MO_UW), 0x1F, 0x0C)</div>
-<div>&nbsp;GEN_STEPX(stw, DEF_MEMOP(MO_UL), 0x1F, 0x04)</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>-GEN_STEPX(std, DEF_MEMOP(MO_Q), 0x1d, 0x04)</div>
-<div>&#43;GEN_STEPX(std, DEF_MEMOP(MO_UQ), 0x1d, 0x04)</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>@@ -3244,7 &#43;3244,7 @@ static void gen_ld_atomic(DisasContext *ctx, TCGMemOp memop)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv t1 = tcg_temp_new();</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_tl(t0, EA, ctx-&gt;mem_idx, memop);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_64 || TARGET_LONG_BITS == 32) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_UQ || TARGET_LONG_BITS == 32) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(t1, src);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(t1, src);</div>
-<div>@@ -3302,7 &#43;3302,7 @@ static void gen_lwat(DisasContext *ctx)</div>
-<div>&nbsp;#ifdef TARGET_PPC64</div>
-<div>&nbsp;static void gen_ldat(DisasContext *ctx)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;gen_ld_atomic(ctx, DEF_MEMOP(MO_Q));</div>
-<div>&#43; &nbsp; &nbsp;gen_ld_atomic(ctx, DEF_MEMOP(MO_UQ));</div>
-<div>&nbsp;}</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>@@ -3385,7 &#43;3385,7 @@ static void gen_stwat(DisasContext *ctx)</div>
-<div>&nbsp;#ifdef TARGET_PPC64</div>
-<div>&nbsp;static void gen_stdat(DisasContext *ctx)</div>
-<div>&nbsp;{</div>
-<div>- &nbsp; &nbsp;gen_st_atomic(ctx, DEF_MEMOP(MO_Q));</div>
-<div>&#43; &nbsp; &nbsp;gen_st_atomic(ctx, DEF_MEMOP(MO_UQ));</div>
-<div>&nbsp;}</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>@@ -3437,9 &#43;3437,9 @@ STCX(stwcx_, DEF_MEMOP(MO_UL))</div>
-<div>&nbsp;</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>&nbsp;/* ldarx */</div>
-<div>-LARX(ldarx, DEF_MEMOP(MO_Q))</div>
-<div>&#43;LARX(ldarx, DEF_MEMOP(MO_UQ))</div>
-<div>&nbsp;/* stdcx. */</div>
-<div>-STCX(stdcx_, DEF_MEMOP(MO_Q))</div>
-<div>&#43;STCX(stdcx_, DEF_MEMOP(MO_UQ))</div>
-<div>&nbsp;</div>
-<div>&nbsp;/* lqarx */</div>
-<div>&nbsp;static void gen_lqarx(DisasContext *ctx)</div>
-<div>@@ -3520,7 &#43;3520,7 @@ static void gen_stqcx_(DisasContext *ctx)</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;if (tb_cflags(ctx-&gt;base.tb) &amp; CF_PARALLEL) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (HAVE_CMPXCHG128) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 oi = tcg_const_i32(DEF_MEMOP(MO_Q) | MO_ALIGN_16);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 oi = tcg_const_i32(DEF_MEMOP(MO_UQ) | MO_ALIGN_16);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ctx-&gt;le_mode) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_stqcx_le_parallel(cpu_crf[0], cpu_env,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EA, lo, hi, oi);</div>
-<div>@@ -7366,7 &#43;7366,7 @@ GEN_LDEPX(lb, DEF_MEMOP(MO_UB), 0x1F, 0x02)</div>
-<div>&nbsp;GEN_LDEPX(lh, DEF_MEMOP(MO_UW), 0x1F, 0x08)</div>
-<div>&nbsp;GEN_LDEPX(lw, DEF_MEMOP(MO_UL), 0x1F, 0x00)</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>-GEN_LDEPX(ld, DEF_MEMOP(MO_Q), 0x1D, 0x00)</div>
-<div>&#43;GEN_LDEPX(ld, DEF_MEMOP(MO_UQ), 0x1D, 0x00)</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>&nbsp;#undef GEN_ST</div>
-<div>@@ -7412,7 &#43;7412,7 @@ GEN_STEPX(stb, DEF_MEMOP(MO_UB), 0x1F, 0x06)</div>
-<div>&nbsp;GEN_STEPX(sth, DEF_MEMOP(MO_UW), 0x1F, 0x0C)</div>
-<div>&nbsp;GEN_STEPX(stw, DEF_MEMOP(MO_UL), 0x1F, 0x04)</div>
-<div>&nbsp;#if defined(TARGET_PPC64)</div>
-<div>-GEN_STEPX(std, DEF_MEMOP(MO_Q), 0x1D, 0x04)</div>
-<div>&#43;GEN_STEPX(std, DEF_MEMOP(MO_UQ), 0x1D, 0x04)</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>&nbsp;#undef GEN_CRLOGIC</div>
-<div>diff --git a/target/ppc/translate/fp-impl.inc.c b/target/ppc/translate/fp-impl.inc.c</div>
-<div>index 9dcff94..3fd54ac 100644</div>
-<div>--- a/target/ppc/translate/fp-impl.inc.c</div>
-<div>&#43;&#43;&#43; b/target/ppc/translate/fp-impl.inc.c</div>
-<div>@@ -855,7 &#43;855,7 @@ static void gen_lfdepx(DisasContext *ctx)</div>
-<div>&nbsp; &nbsp; &nbsp;EA = tcg_temp_new();</div>
-<div>&nbsp; &nbsp; &nbsp;t0 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp;gen_addr_reg_index(ctx, EA);</div>
-<div>- &nbsp; &nbsp;tcg_gen_qemu_ld_i64(t0, EA, PPC_TLB_EPID_LOAD, DEF_MEMOP(MO_Q));</div>
-<div>&#43; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(t0, EA, PPC_TLB_EPID_LOAD, DEF_MEMOP(MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp;set_fpr(rD(ctx-&gt;opcode), t0);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free(EA);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t0);</div>
-<div>@@ -1091,7 &#43;1091,7 @@ static void gen_stfdepx(DisasContext *ctx)</div>
-<div>&nbsp; &nbsp; &nbsp;t0 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp;gen_addr_reg_index(ctx, EA);</div>
-<div>&nbsp; &nbsp; &nbsp;get_fpr(t0, rD(ctx-&gt;opcode));</div>
-<div>- &nbsp; &nbsp;tcg_gen_qemu_st_i64(t0, EA, PPC_TLB_EPID_STORE, DEF_MEMOP(MO_Q));</div>
-<div>&#43; &nbsp; &nbsp;tcg_gen_qemu_st_i64(t0, EA, PPC_TLB_EPID_STORE, DEF_MEMOP(MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free(EA);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t0);</div>
-<div>&nbsp;}</div>
-<div>diff --git a/target/ppc/translate/vmx-impl.inc.c b/target/ppc/translate/vmx-impl.inc.c</div>
-<div>index 8aa767e..867dc52 100644</div>
-<div>--- a/target/ppc/translate/vmx-impl.inc.c</div>
-<div>&#43;&#43;&#43; b/target/ppc/translate/vmx-impl.inc.c</div>
-<div>@@ -290,14 &#43;290,14 @@ static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp;/* Logical operations */</div>
-<div>-GEN_VXFORM_V(vand, MO_64, tcg_gen_gvec_and, 2, 16);</div>
-<div>-GEN_VXFORM_V(vandc, MO_64, tcg_gen_gvec_andc, 2, 17);</div>
-<div>-GEN_VXFORM_V(vor, MO_64, tcg_gen_gvec_or, 2, 18);</div>
-<div>-GEN_VXFORM_V(vxor, MO_64, tcg_gen_gvec_xor, 2, 19);</div>
-<div>-GEN_VXFORM_V(vnor, MO_64, tcg_gen_gvec_nor, 2, 20);</div>
-<div>-GEN_VXFORM_V(veqv, MO_64, tcg_gen_gvec_eqv, 2, 26);</div>
-<div>-GEN_VXFORM_V(vnand, MO_64, tcg_gen_gvec_nand, 2, 22);</div>
-<div>-GEN_VXFORM_V(vorc, MO_64, tcg_gen_gvec_orc, 2, 21);</div>
-<div>&#43;GEN_VXFORM_V(vand, MO_UQ, tcg_gen_gvec_and, 2, 16);</div>
-<div>&#43;GEN_VXFORM_V(vandc, MO_UQ, tcg_gen_gvec_andc, 2, 17);</div>
-<div>&#43;GEN_VXFORM_V(vor, MO_UQ, tcg_gen_gvec_or, 2, 18);</div>
-<div>&#43;GEN_VXFORM_V(vxor, MO_UQ, tcg_gen_gvec_xor, 2, 19);</div>
-<div>&#43;GEN_VXFORM_V(vnor, MO_UQ, tcg_gen_gvec_nor, 2, 20);</div>
-<div>&#43;GEN_VXFORM_V(veqv, MO_UQ, tcg_gen_gvec_eqv, 2, 26);</div>
-<div>&#43;GEN_VXFORM_V(vnand, MO_UQ, tcg_gen_gvec_nand, 2, 22);</div>
-<div>&#43;GEN_VXFORM_V(vorc, MO_UQ, tcg_gen_gvec_orc, 2, 21);</div>
-<div>&nbsp;</div>
-<div>&nbsp;#define GEN_VXFORM(name, opc2, opc3) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div>
-<div>&nbsp;static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>@@ -410,27 &#43;410,27 @@ GEN_VXFORM_V(vadduhm, MO_UW, tcg_gen_gvec_add, 0, 1);</div>
-<div>&nbsp;GEN_VXFORM_DUAL(vadduhm, PPC_ALTIVEC, PPC_NONE, &nbsp;\</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vmul10ecuq, PPC_NONE, PPC2_ISA300)</div>
-<div>&nbsp;GEN_VXFORM_V(vadduwm, MO_UL, tcg_gen_gvec_add, 0, 2);</div>
-<div>-GEN_VXFORM_V(vaddudm, MO_64, tcg_gen_gvec_add, 0, 3);</div>
-<div>&#43;GEN_VXFORM_V(vaddudm, MO_UQ, tcg_gen_gvec_add, 0, 3);</div>
-<div>&nbsp;GEN_VXFORM_V(vsububm, MO_UB, tcg_gen_gvec_sub, 0, 16);</div>
-<div>&nbsp;GEN_VXFORM_V(vsubuhm, MO_UW, tcg_gen_gvec_sub, 0, 17);</div>
-<div>&nbsp;GEN_VXFORM_V(vsubuwm, MO_UL, tcg_gen_gvec_sub, 0, 18);</div>
-<div>-GEN_VXFORM_V(vsubudm, MO_64, tcg_gen_gvec_sub, 0, 19);</div>
-<div>&#43;GEN_VXFORM_V(vsubudm, MO_UQ, tcg_gen_gvec_sub, 0, 19);</div>
-<div>&nbsp;GEN_VXFORM_V(vmaxub, MO_UB, tcg_gen_gvec_umax, 1, 0);</div>
-<div>&nbsp;GEN_VXFORM_V(vmaxuh, MO_UW, tcg_gen_gvec_umax, 1, 1);</div>
-<div>&nbsp;GEN_VXFORM_V(vmaxuw, MO_UL, tcg_gen_gvec_umax, 1, 2);</div>
-<div>-GEN_VXFORM_V(vmaxud, MO_64, tcg_gen_gvec_umax, 1, 3);</div>
-<div>&#43;GEN_VXFORM_V(vmaxud, MO_UQ, tcg_gen_gvec_umax, 1, 3);</div>
-<div>&nbsp;GEN_VXFORM_V(vmaxsb, MO_UB, tcg_gen_gvec_smax, 1, 4);</div>
-<div>&nbsp;GEN_VXFORM_V(vmaxsh, MO_UW, tcg_gen_gvec_smax, 1, 5);</div>
-<div>&nbsp;GEN_VXFORM_V(vmaxsw, MO_UL, tcg_gen_gvec_smax, 1, 6);</div>
-<div>-GEN_VXFORM_V(vmaxsd, MO_64, tcg_gen_gvec_smax, 1, 7);</div>
-<div>&#43;GEN_VXFORM_V(vmaxsd, MO_UQ, tcg_gen_gvec_smax, 1, 7);</div>
-<div>&nbsp;GEN_VXFORM_V(vminub, MO_UB, tcg_gen_gvec_umin, 1, 8);</div>
-<div>&nbsp;GEN_VXFORM_V(vminuh, MO_UW, tcg_gen_gvec_umin, 1, 9);</div>
-<div>&nbsp;GEN_VXFORM_V(vminuw, MO_UL, tcg_gen_gvec_umin, 1, 10);</div>
-<div>-GEN_VXFORM_V(vminud, MO_64, tcg_gen_gvec_umin, 1, 11);</div>
-<div>&#43;GEN_VXFORM_V(vminud, MO_UQ, tcg_gen_gvec_umin, 1, 11);</div>
-<div>&nbsp;GEN_VXFORM_V(vminsb, MO_UB, tcg_gen_gvec_smin, 1, 12);</div>
-<div>&nbsp;GEN_VXFORM_V(vminsh, MO_UW, tcg_gen_gvec_smin, 1, 13);</div>
-<div>&nbsp;GEN_VXFORM_V(vminsw, MO_UL, tcg_gen_gvec_smin, 1, 14);</div>
-<div>-GEN_VXFORM_V(vminsd, MO_64, tcg_gen_gvec_smin, 1, 15);</div>
-<div>&#43;GEN_VXFORM_V(vminsd, MO_UQ, tcg_gen_gvec_smin, 1, 15);</div>
-<div>&nbsp;GEN_VXFORM(vavgub, 1, 16);</div>
-<div>&nbsp;GEN_VXFORM(vabsdub, 1, 16);</div>
-<div>&nbsp;GEN_VXFORM_DUAL(vavgub, PPC_ALTIVEC, PPC_NONE, \</div>
-<div>@@ -536,15 &#43;536,15 @@ GEN_VXFORM_V(vslw, MO_UL, tcg_gen_gvec_shlv, 2, 6);</div>
-<div>&nbsp;GEN_VXFORM(vrlwnm, 2, 6);</div>
-<div>&nbsp;GEN_VXFORM_DUAL(vslw, PPC_ALTIVEC, PPC_NONE, \</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vrlwnm, PPC_NONE, PPC2_ISA300)</div>
-<div>-GEN_VXFORM_V(vsld, MO_64, tcg_gen_gvec_shlv, 2, 23);</div>
-<div>&#43;GEN_VXFORM_V(vsld, MO_UQ, tcg_gen_gvec_shlv, 2, 23);</div>
-<div>&nbsp;GEN_VXFORM_V(vsrb, MO_UB, tcg_gen_gvec_shrv, 2, 8);</div>
-<div>&nbsp;GEN_VXFORM_V(vsrh, MO_UW, tcg_gen_gvec_shrv, 2, 9);</div>
-<div>&nbsp;GEN_VXFORM_V(vsrw, MO_UL, tcg_gen_gvec_shrv, 2, 10);</div>
-<div>-GEN_VXFORM_V(vsrd, MO_64, tcg_gen_gvec_shrv, 2, 27);</div>
-<div>&#43;GEN_VXFORM_V(vsrd, MO_UQ, tcg_gen_gvec_shrv, 2, 27);</div>
-<div>&nbsp;GEN_VXFORM_V(vsrab, MO_UB, tcg_gen_gvec_sarv, 2, 12);</div>
-<div>&nbsp;GEN_VXFORM_V(vsrah, MO_UW, tcg_gen_gvec_sarv, 2, 13);</div>
-<div>&nbsp;GEN_VXFORM_V(vsraw, MO_UL, tcg_gen_gvec_sarv, 2, 14);</div>
-<div>-GEN_VXFORM_V(vsrad, MO_64, tcg_gen_gvec_sarv, 2, 15);</div>
-<div>&#43;GEN_VXFORM_V(vsrad, MO_UQ, tcg_gen_gvec_sarv, 2, 15);</div>
-<div>&nbsp;GEN_VXFORM(vsrv, 2, 28);</div>
-<div>&nbsp;GEN_VXFORM(vslv, 2, 29);</div>
-<div>&nbsp;GEN_VXFORM(vslo, 6, 16);</div>
-<div>diff --git a/target/ppc/translate/vsx-impl.inc.c b/target/ppc/translate/vsx-impl.inc.c</div>
-<div>index 212817e..d607974 100644</div>
-<div>--- a/target/ppc/translate/vsx-impl.inc.c</div>
-<div>&#43;&#43;&#43; b/target/ppc/translate/vsx-impl.inc.c</div>
-<div>@@ -1475,14 &#43;1475,14 @@ static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vsr_full_offset(xB(ctx-&gt;opcode)), 16, 16); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>-VSX_LOGICAL(xxland, MO_64, tcg_gen_gvec_and)</div>
-<div>-VSX_LOGICAL(xxlandc, MO_64, tcg_gen_gvec_andc)</div>
-<div>-VSX_LOGICAL(xxlor, MO_64, tcg_gen_gvec_or)</div>
-<div>-VSX_LOGICAL(xxlxor, MO_64, tcg_gen_gvec_xor)</div>
-<div>-VSX_LOGICAL(xxlnor, MO_64, tcg_gen_gvec_nor)</div>
-<div>-VSX_LOGICAL(xxleqv, MO_64, tcg_gen_gvec_eqv)</div>
-<div>-VSX_LOGICAL(xxlnand, MO_64, tcg_gen_gvec_nand)</div>
-<div>-VSX_LOGICAL(xxlorc, MO_64, tcg_gen_gvec_orc)</div>
-<div>&#43;VSX_LOGICAL(xxland, MO_UQ, tcg_gen_gvec_and)</div>
-<div>&#43;VSX_LOGICAL(xxlandc, MO_UQ, tcg_gen_gvec_andc)</div>
-<div>&#43;VSX_LOGICAL(xxlor, MO_UQ, tcg_gen_gvec_or)</div>
-<div>&#43;VSX_LOGICAL(xxlxor, MO_UQ, tcg_gen_gvec_xor)</div>
-<div>&#43;VSX_LOGICAL(xxlnor, MO_UQ, tcg_gen_gvec_nor)</div>
-<div>&#43;VSX_LOGICAL(xxleqv, MO_UQ, tcg_gen_gvec_eqv)</div>
-<div>&#43;VSX_LOGICAL(xxlnand, MO_UQ, tcg_gen_gvec_nand)</div>
-<div>&#43;VSX_LOGICAL(xxlorc, MO_UQ, tcg_gen_gvec_orc)</div>
-<div>&nbsp;</div>
-<div>&nbsp;#define VSX_XXMRG(name, high) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>&nbsp;static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>@@ -1535,7 &#43;1535,7 @@ static void gen_xxsel(DisasContext *ctx)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_exception(ctx, POWERPC_EXCP_VSXU);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp;tcg_gen_gvec_bitsel(MO_64, vsr_full_offset(rt), vsr_full_offset(rc),</div>
-<div>&#43; &nbsp; &nbsp;tcg_gen_gvec_bitsel(MO_UQ, vsr_full_offset(rt), vsr_full_offset(rc),</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vsr_full_offset(rb), vsr_full_offset(ra), 16, 16);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>diff --git a/target/s390x/translate.c b/target/s390x/translate.c</div>
-<div>index 9e646f1..5c72db1 100644</div>
-<div>--- a/target/s390x/translate.c</div>
-<div>&#43;&#43;&#43; b/target/s390x/translate.c</div>
-<div>@@ -180,7 &#43;180,7 @@ static inline int vec_reg_offset(uint8_t reg, uint8_t enr, TCGMemOp es)</div>
-<div>&nbsp; &nbsp; &nbsp; * the two 8 byte elements have to be loaded separately. Let's force all</div>
-<div>&nbsp; &nbsp; &nbsp; * 16 byte operations to handle it in a special way.</div>
-<div>&nbsp; &nbsp; &nbsp; */</div>
-<div>- &nbsp; &nbsp;g_assert(es &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;g_assert(es &lt;= MO_UQ);</div>
-<div>&nbsp;#ifndef HOST_WORDS_BIGENDIAN</div>
-<div>&nbsp; &nbsp; &nbsp;offs ^= (8 - bytes);</div>
-<div>&nbsp;#endif</div>
-<div>@@ -190,7 &#43;190,7 @@ static inline int vec_reg_offset(uint8_t reg, uint8_t enr, TCGMemOp es)</div>
-<div>&nbsp;static inline int freg64_offset(uint8_t reg)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;g_assert(reg &lt; 16);</div>
-<div>- &nbsp; &nbsp;return vec_reg_offset(reg, 0, MO_64);</div>
-<div>&#43; &nbsp; &nbsp;return vec_reg_offset(reg, 0, MO_UQ);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp;static inline int freg32_offset(uint8_t reg)</div>
-<div>diff --git a/target/s390x/translate_vx.inc.c b/target/s390x/translate_vx.inc.c</div>
-<div>index 75d788c..6252262 100644</div>
-<div>--- a/target/s390x/translate_vx.inc.c</div>
-<div>&#43;&#43;&#43; b/target/s390x/translate_vx.inc.c</div>
-<div>@@ -30,8 &#43;30,8 @@</div>
-<div>&nbsp; * Sizes:</div>
-<div>&nbsp; * &nbsp;On s390x, the operand size (oprsz) and the maximum size (maxsz) are</div>
-<div>&nbsp; * &nbsp;always 16 (128 bit). What gvec code calls &quot;vece&quot;, s390x calls &quot;es&quot;,</div>
-<div>- * &nbsp;a.k.a. &quot;element size&quot;. These values nicely map to MO_UB ... MO_64. Only</div>
-<div>- * &nbsp;128 bit element size has to be treated in a special way (MO_64 &#43; 1).</div>
-<div>&#43; * &nbsp;a.k.a. &quot;element size&quot;. These values nicely map to MO_UB ... MO_UQ. Only</div>
-<div>&#43; * &nbsp;128 bit element size has to be treated in a special way (MO_UQ &#43; 1).</div>
-<div>&nbsp; * &nbsp;We will use ES_* instead of MO_* for this reason in this file.</div>
-<div>&nbsp; *</div>
-<div>&nbsp; * CC handling:</div>
-<div>@@ -49,7 &#43;49,7 @@</div>
-<div>&nbsp;#define ES_8 &nbsp; &nbsp;MO_UB</div>
-<div>&nbsp;#define ES_16 &nbsp; MO_UW</div>
-<div>&nbsp;#define ES_32 &nbsp; MO_UL</div>
-<div>-#define ES_64 &nbsp; MO_64</div>
-<div>&#43;#define ES_64 &nbsp; MO_UQ</div>
-<div>&nbsp;#define ES_128 &nbsp;4</div>
-<div>&nbsp;</div>
-<div>&nbsp;/* Floating-Point Format */</div>
-<div>diff --git a/target/s390x/vec.h b/target/s390x/vec.h</div>
-<div>index f67392c..b59da65 100644</div>
-<div>--- a/target/s390x/vec.h</div>
-<div>&#43;&#43;&#43; b/target/s390x/vec.h</div>
-<div>@@ -82,7 &#43;82,7 @@ static inline uint64_t s390_vec_read_element(const S390Vector *v, uint8_t enr,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return s390_vec_read_element16(v, enr);</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return s390_vec_read_element32(v, enr);</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return s390_vec_read_element64(v, enr);</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>
-<div>@@ -130,7 &#43;130,7 @@ static inline void s390_vec_write_element(S390Vector *v, uint8_t enr,</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s390_vec_write_element32(v, enr, data);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s390_vec_write_element64(v, enr, data);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>diff --git a/target/sparc/translate.c b/target/sparc/translate.c</div>
-<div>index 091bab5..499622b 100644</div>
-<div>--- a/target/sparc/translate.c</div>
-<div>&#43;&#43;&#43; b/target/sparc/translate.c</div>
-<div>@@ -2840,7 &#43;2840,7 @@ static void gen_ldda_asi(DisasContext *dc, TCGv addr, int insn, int rd)</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_asi = tcg_const_i32(da.asi);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_Q);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;save_state(dc);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_ld_asi(t64, cpu_env, addr, r_asi, r_mop);</div>
-<div>@@ -2896,7 &#43;2896,7 @@ static void gen_stda_asi(DisasContext *dc, TCGv hi, TCGv addr,</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_asi = tcg_const_i32(da.asi);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_Q);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_UQ);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;save_state(dc);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_st_asi(cpu_env, addr, t64, r_asi, r_mop);</div>
-<div>diff --git a/tcg/aarch64/tcg-target.inc.c b/tcg/aarch64/tcg-target.inc.c</div>
-<div>index dc4fd21..d14afa9 100644</div>
-<div>--- a/tcg/aarch64/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/aarch64/tcg-target.inc.c</div>
-<div>@@ -432,12 &#43;432,12 @@ typedef enum {</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_STRB &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UB &lt;&lt; 30,</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_STRH &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UW &lt;&lt; 30,</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_STRW &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>
-<div>- &nbsp; &nbsp;I3312_STRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>
-<div>&#43; &nbsp; &nbsp;I3312_STRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_LDRB &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UB &lt;&lt; 30,</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_LDRH &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UW &lt;&lt; 30,</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_LDRW &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>
-<div>- &nbsp; &nbsp;I3312_LDRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>
-<div>&#43; &nbsp; &nbsp;I3312_LDRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_LDRSBW &nbsp; &nbsp;= 0x38000000 | LDST_LD_S_W &lt;&lt; 22 | MO_UB &lt;&lt; 30,</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_LDRSHW &nbsp; &nbsp;= 0x38000000 | LDST_LD_S_W &lt;&lt; 22 | MO_UW &lt;&lt; 30,</div>
-<div>@@ -449,8 &#43;449,8 @@ typedef enum {</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_LDRVS &nbsp; &nbsp; = 0x3c000000 | LDST_LD &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_STRVS &nbsp; &nbsp; = 0x3c000000 | LDST_ST &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;I3312_LDRVD &nbsp; &nbsp; = 0x3c000000 | LDST_LD &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>
-<div>- &nbsp; &nbsp;I3312_STRVD &nbsp; &nbsp; = 0x3c000000 | LDST_ST &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>
-<div>&#43; &nbsp; &nbsp;I3312_LDRVD &nbsp; &nbsp; = 0x3c000000 | LDST_LD &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>
-<div>&#43; &nbsp; &nbsp;I3312_STRVD &nbsp; &nbsp; = 0x3c000000 | LDST_ST &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_LDRVQ &nbsp; &nbsp; = 0x3c000000 | 3 &lt;&lt; 22 | 0 &lt;&lt; 30,</div>
-<div>&nbsp; &nbsp; &nbsp;I3312_STRVQ &nbsp; &nbsp; = 0x3c000000 | 2 &lt;&lt; 22 | 0 &lt;&lt; 30,</div>
-<div>@@ -1595,7 &#43;1595,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp; &nbsp; &nbsp;if (opc &amp; MO_SIGN) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_sxt(s, lb-&gt;type, size, lb-&gt;datalo_reg, TCG_REG_X0);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, size == MO_64, lb-&gt;datalo_reg, TCG_REG_X0);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, size == MO_UQ, lb-&gt;datalo_reg, TCG_REG_X0);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_goto(s, lb-&gt;raddr);</div>
-<div>@@ -1614,7 &#43;1614,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_PTR, TCG_REG_X0, TCG_AREG0);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TARGET_LONG_BITS == 64, TCG_REG_X1, lb-&gt;addrlo_reg);</div>
-<div>- &nbsp; &nbsp;tcg_out_mov(s, size == MO_64, TCG_REG_X2, lb-&gt;datalo_reg);</div>
-<div>&#43; &nbsp; &nbsp;tcg_out_mov(s, size == MO_UQ, TCG_REG_X2, lb-&gt;datalo_reg);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_movi(s, TCG_TYPE_I32, TCG_REG_X3, oi);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_adr(s, TCG_REG_X4, lb-&gt;raddr);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_call(s, qemu_st_helpers[opc &amp; (MO_BSWAP | MO_SIZE)]);</div>
-<div>@@ -1754,7 &#43;1754,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp memop, TCGType ext,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_ldst_r(s, I3312_LDRSWX, data_r, addr_r, otype, off_r);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_ldst_r(s, I3312_LDRX, data_r, addr_r, otype, off_r);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_rev64(s, data_r, data_r);</div>
-<div>@@ -1789,7 &#43;1789,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGMemOp memop,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_ldst_r(s, I3312_STRW, data_r, addr_r, otype, off_r);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap &amp;&amp; data_r != TCG_REG_XZR) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_rev64(s, TCG_REG_TMP, data_r);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data_r = TCG_REG_TMP;</div>
-<div>@@ -1838,7 &#43;1838,7 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg data_reg, TCGReg addr_reg,</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_tlb_read(s, addr_reg, memop, &amp;label_ptr, mem_index, 0);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_qemu_st_direct(s, memop, data_reg,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TCG_REG_X1, otype, addr_reg);</div>
-<div>- &nbsp; &nbsp;add_qemu_ldst_label(s, false, oi, (memop &amp; MO_SIZE)== MO_64,</div>
-<div>&#43; &nbsp; &nbsp;add_qemu_ldst_label(s, false, oi, (memop &amp; MO_SIZE) == MO_UQ,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data_reg, addr_reg, s-&gt;code_ptr, label_ptr);</div>
-<div>&nbsp;#else /* !CONFIG_SOFTMMU */</div>
-<div>&nbsp; &nbsp; &nbsp;if (USE_GUEST_BASE) {</div>
-<div>@@ -2506,7 &#43;2506,7 @@ int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece)</div>
-<div>&nbsp; &nbsp; &nbsp;case INDEX_op_smin_vec:</div>
-<div>&nbsp; &nbsp; &nbsp;case INDEX_op_umax_vec:</div>
-<div>&nbsp; &nbsp; &nbsp;case INDEX_op_umin_vec:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;return vece &lt; MO_64;</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;return vece &lt; MO_UQ;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0;</div>
-<div>diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c</div>
-<div>index 05560a2..70eeb8a 100644</div>
-<div>--- a/tcg/arm/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/arm/tcg-target.inc.c</div>
-<div>@@ -1389,7 &#43;1389,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov_reg(s, COND_AL, datalo, TCG_REG_R0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (datalo != TCG_REG_R1) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov_reg(s, COND_AL, datalo, TCG_REG_R0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov_reg(s, COND_AL, datahi, TCG_REG_R1);</div>
-<div>@@ -1439,7 &#43;1439,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;argreg = tcg_out_arg_reg32(s, argreg, datalo);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;argreg = tcg_out_arg_reg64(s, argreg, datalo, datahi);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -1487,7 &#43;1487,7 @@ static inline void tcg_out_qemu_ld_index(TCGContext *s, TCGMemOp opc,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, COND_AL, datalo, datalo);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dl = (bswap ? datahi : datalo);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dh = (bswap ? datalo : datahi);</div>
-<div>@@ -1548,7 &#43;1548,7 @@ static inline void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp opc,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, COND_AL, datalo, datalo);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dl = (bswap ? datahi : datalo);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dh = (bswap ? datalo : datahi);</div>
-<div>@@ -1641,7 &#43;1641,7 @@ static inline void tcg_out_qemu_st_index(TCGContext *s, int cond, TCGMemOp opc,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st32_r(s, cond, datalo, addrlo, addend);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Avoid strd for user-only emulation, to handle unaligned. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, cond, TCG_REG_R0, datahi);</div>
-<div>@@ -1686,7 &#43;1686,7 @@ static inline void tcg_out_qemu_st_direct(TCGContext *s, TCGMemOp opc,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st32_12(s, COND_AL, datalo, addrlo, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Avoid strd for user-only emulation, to handle unaligned. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, COND_AL, TCG_REG_R0, datahi);</div>
-<div>diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c</div>
-<div>index 93e4c63..3a73334 100644</div>
-<div>--- a/tcg/i386/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/i386/tcg-target.inc.c</div>
-<div>@@ -902,7 &#43;902,7 @@ static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* imm8 operand: all output lanes selected from input lane 0. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out8(s, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_vex_modrm(s, OPC_PUNPCKLQDQ, r, a, a);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -921,7 &#43;921,7 @@ static bool tcg_out_dupm_vec(TCGContext *s, TCGType type, unsigned vece,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r, 0, base, offset);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (vece) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_vex_modrm_offset(s, OPC_MOVDDUP, r, 0, base, offset);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>@@ -1868,7 &#43;1868,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, data_reg, TCG_REG_EAX);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, data_reg, TCG_REG_RAX);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (data_reg == TCG_REG_EDX) {</div>
-<div>@@ -1923,7 &#43;1923,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st(s, TCG_TYPE_I32, l-&gt;datalo_reg, TCG_REG_ESP, ofs);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ofs &#43;= 4;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st(s, TCG_TYPE_I32, l-&gt;datahi_reg, TCG_REG_ESP, ofs);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ofs &#43;= 4;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -1937,7 &#43;1937,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_PTR, tcg_target_call_iarg_regs[0], TCG_AREG0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The second argument is already loaded with addrlo. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, (s_bits == MO_64 ? TCG_TYPE_I64 : TCG_TYPE_I32),</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, (s_bits == MO_UQ ? TCG_TYPE_I64 : TCG_TYPE_I32),</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_target_call_iarg_regs[2], l-&gt;datalo_reg);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_movi(s, TCG_TYPE_I32, tcg_target_call_iarg_regs[3], oi);</div>
-<div>&nbsp;</div>
-<div>@@ -2060,7 &#43;2060,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg datalo, TCGReg datahi,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;#endif</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_modrm_sib_offset(s, movop &#43; P_REXW &#43; seg, datalo,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; base, index, 0, ofs);</div>
-<div>@@ -2181,7 &#43;2181,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg datalo, TCGReg datahi,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_modrm_sib_offset(s, movop &#43; seg, datalo, base, index, 0, ofs);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, scratch, datalo);</div>
-<div>@@ -2755,7 &#43;2755,7 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_UD2, OPC_UD2, OPC_VPSRLVD, OPC_VPSRLVQ</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp; &nbsp; &nbsp;static int const sarv_insn[4] = {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_UW, MO_64. &nbsp;*/</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_UW, MO_UQ. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_UD2, OPC_UD2, OPC_VPSRAVD, OPC_UD2</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp; &nbsp; &nbsp;static int const shls_insn[4] = {</div>
-<div>@@ -2768,7 &#43;2768,7 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_UD2, OPC_PSRAW, OPC_PSRAD, OPC_UD2</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp; &nbsp; &nbsp;static int const abs_insn[4] = {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_64. &nbsp;*/</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_UQ. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_PABSB, OPC_PABSW, OPC_PABSD, OPC_UD2</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>@@ -2898,7 &#43;2898,7 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sub = 2;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto gen_shift;</div>
-<div>&nbsp; &nbsp; &nbsp;case INDEX_op_sari_vec:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_debug_assert(vece != MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_debug_assert(vece != MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sub = 4;</div>
-<div>&nbsp; &nbsp; &nbsp;gen_shift:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_debug_assert(vece != MO_UB);</div>
-<div>@@ -3281,9 &#43;3281,11 @@ int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UB) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return -1;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;/* We can emulate this for MO_64, but it does not pay off</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unless we're producing at least 4 values. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;/*</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; * We can emulate this for MO_UQ, but it does not pay off</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; * unless we're producing at least 4 values.</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; */</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return type &gt;= TCG_TYPE_V256 ? -1 : 0;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 1;</div>
-<div>@@ -3305,7 &#43;3307,7 @@ int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* We can expand the operation for MO_UB. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return -1;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 1;</div>
-<div>@@ -3389,7 &#43;3391,7 @@ static void expand_vec_sari(TCGType type, unsigned vece,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_vec(t2);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (imm &lt;= 32) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* We can emulate a small sign extend by performing an arithmetic</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * 32-bit shift and overwriting the high half of a 64-bit logical</div>
-<div>@@ -3397,7 &#43;3399,7 @@ static void expand_vec_sari(TCGType type, unsigned vece,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t1 = tcg_temp_new_vec(type);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_vec(MO_UL, t1, v1, imm);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_64, v0, v1, imm);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_UQ, v0, v1, imm);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_4(INDEX_op_x86_blend_vec, type, MO_UL,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcgv_vec_arg(v0), tcgv_vec_arg(v0),</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcgv_vec_arg(t1), 0xaa);</div>
-<div>@@ -3407,10 &#43;3409,10 @@ static void expand_vec_sari(TCGType type, unsigned vece,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * the sign-extend, shift and merge.</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t1 = tcg_const_zeros_vec(type);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_cmp_vec(TCG_COND_GT, MO_64, t1, t1, v1);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_64, v0, v1, imm);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shli_vec(MO_64, t1, t1, 64 - imm);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_or_vec(MO_64, v0, v0, t1);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_cmp_vec(TCG_COND_GT, MO_UQ, t1, t1, v1);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_UQ, v0, v1, imm);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shli_vec(MO_UQ, t1, t1, 64 - imm);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_or_vec(MO_UQ, v0, v0, t1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_vec(t1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>diff --git a/tcg/mips/tcg-target.inc.c b/tcg/mips/tcg-target.inc.c</div>
-<div>index a78fe87..ef31fc8 100644</div>
-<div>--- a/tcg/mips/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/mips/tcg-target.inc.c</div>
-<div>@@ -1336,7 &#43;1336,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_PTR, tcg_target_call_iarg_regs[0], TCG_AREG0);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;v0 = l-&gt;datalo_reg;</div>
-<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* We eliminated V0 from the possible output registers, so it</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cannot be clobbered here. &nbsp;So we must move V1 first. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (MIPS_BE) {</div>
-<div>@@ -1389,7 &#43;1389,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = tcg_out_call_iarg_reg(s, i, l-&gt;datalo_reg);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = tcg_out_call_iarg_reg2(s, i, l-&gt;datalo_reg, l-&gt;datahi_reg);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>@@ -1470,7 &#43;1470,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_SL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LW, lo, base, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q | MO_BSWAP:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (use_mips32r2_instructions) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LD, lo, base, 0);</div>
-<div>@@ -1499,7 &#43;1499,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, MIPS_BE ? hi : lo, TCG_TMP3);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Prefer to load from offset 0 first, but allow for overlap. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LD, lo, base, 0);</div>
-<div>@@ -1587,7 &#43;1587,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SW, lo, base, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;case MO_64 | MO_BSWAP:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap64(s, TCG_TMP3, lo);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SD, TCG_TMP3, base, 0);</div>
-<div>@@ -1605,7 &#43;1605,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SW, TCG_TMP3, base, 4);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SD, lo, base, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c</div>
-<div>index 835336a..13a2437 100644</div>
-<div>--- a/tcg/ppc/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/ppc/tcg-target.inc.c</div>
-<div>@@ -1445,24 &#43;1445,24 @@ static const uint32_t qemu_ldx_opc[16] = {</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UB] = LBZX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UW] = LHZX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UL] = LWZX,</div>
-<div>- &nbsp; &nbsp;[MO_Q] &nbsp;= LDX,</div>
-<div>&#43; &nbsp; &nbsp;[MO_UQ] &nbsp;= LDX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_SW] = LHAX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_SL] = LWAX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UB] = LBZX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UW] = LHBRX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UL] = LWBRX,</div>
-<div>- &nbsp; &nbsp;[MO_BSWAP | MO_Q] &nbsp;= LDBRX,</div>
-<div>&#43; &nbsp; &nbsp;[MO_BSWAP | MO_UQ] &nbsp;= LDBRX,</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static const uint32_t qemu_stx_opc[16] = {</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UB] = STBX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UW] = STHX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UL] = STWX,</div>
-<div>- &nbsp; &nbsp;[MO_Q] &nbsp;= STDX,</div>
-<div>&#43; &nbsp; &nbsp;[MO_UQ] &nbsp;= STDX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UB] = STBX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UW] = STHBRX,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UL] = STWBRX,</div>
-<div>- &nbsp; &nbsp;[MO_BSWAP | MO_Q] &nbsp;= STDBRX,</div>
-<div>&#43; &nbsp; &nbsp;[MO_BSWAP | MO_UQ] &nbsp;= STDBRX,</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;static const uint32_t qemu_exts_opc[4] = {</div>
-<div>@@ -1663,7 &#43;1663,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;lo = lb-&gt;datalo_reg;</div>
-<div>&nbsp; &nbsp; &nbsp;hi = lb-&gt;datahi_reg;</div>
-<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, lo, TCG_REG_R4);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, hi, TCG_REG_R3);</div>
-<div>&nbsp; &nbsp; &nbsp;} else if (opc &amp; MO_SIGN) {</div>
-<div>@@ -1708,7 &#43;1708,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp; &nbsp; &nbsp;hi = lb-&gt;datahi_reg;</div>
-<div>&nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (s_bits) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp;#ifdef TCG_TARGET_CALL_ALIGN_ARGS</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arg |= 1;</div>
-<div>&nbsp;#endif</div>
-<div>@@ -1722,7 &#43;1722,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, arg&#43;&#43;, lo);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_rld(s, RLDICL, arg&#43;&#43;, lo, 0, 64 - (8 &lt;&lt; s_bits));</div>
-<div>@@ -1775,7 &#43;1775,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGArg *args, bool is_64)</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (opc &amp; MO_BSWAP) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, ADDI | TAI(TCG_REG_R0, addrlo, 4));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, LWBRX | TAB(datalo, rbase, addrlo));</div>
-<div>@@ -1850,7 &#43;1850,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGArg *args, bool is_64)</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;#endif</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (opc &amp; MO_BSWAP) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, ADDI | TAI(TCG_REG_R0, addrlo, 4));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, STWBRX | SAB(datalo, rbase, addrlo));</div>
-<div>diff --git a/tcg/riscv/tcg-target.inc.c b/tcg/riscv/tcg-target.inc.c</div>
-<div>index 1905986..90363df 100644</div>
-<div>--- a/tcg/riscv/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/riscv/tcg-target.inc.c</div>
-<div>@@ -1068,7 &#43;1068,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_movi(s, TCG_TYPE_PTR, a3, (tcg_target_long)l-&gt;raddr);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_call(s, qemu_ld_helpers[opc &amp; (MO_BSWAP | MO_SSIZE)]);</div>
-<div>- &nbsp; &nbsp;tcg_out_mov(s, (opc &amp; MO_SIZE) == MO_64, l-&gt;datalo_reg, a0);</div>
-<div>&#43; &nbsp; &nbsp;tcg_out_mov(s, (opc &amp; MO_SIZE) == MO_UQ, l-&gt;datalo_reg, a0);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_goto(s, l-&gt;raddr);</div>
-<div>&nbsp; &nbsp; &nbsp;return true;</div>
-<div>@@ -1150,7 &#43;1150,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_SL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LW, lo, base, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Prefer to load from offset 0 first, but allow for overlap. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LD, lo, base, 0);</div>
-<div>@@ -1225,7 &#43;1225,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_store(s, OPC_SW, base, lo, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_store(s, OPC_SD, base, lo, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>diff --git a/tcg/s390/tcg-target.inc.c b/tcg/s390/tcg-target.inc.c</div>
-<div>index fe42939..db1102e 100644</div>
-<div>--- a/tcg/s390/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/s390/tcg-target.inc.c</div>
-<div>@@ -1477,10 &#43;1477,10 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp opc, TCGReg data,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, LGF, data, base, index, disp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;case MO_Q | MO_BSWAP:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, LRVG, data, base, index, disp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, LG, data, base, index, disp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>@@ -1523,10 &#43;1523,10 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGMemOp opc, TCGReg data,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;case MO_Q | MO_BSWAP:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, STRVG, data, base, index, disp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, STG, data, base, index, disp);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>@@ -1660,7 &#43;1660,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tgen_ext32u(s, TCG_REG_R4, data_reg);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_Q:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, TCG_REG_R4, data_reg);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>diff --git a/tcg/sparc/tcg-target.inc.c b/tcg/sparc/tcg-target.inc.c</div>
-<div>index ac0d3a3..7c50118 100644</div>
-<div>--- a/tcg/sparc/tcg-target.inc.c</div>
-<div>&#43;&#43;&#43; b/tcg/sparc/tcg-target.inc.c</div>
-<div>@@ -894,7 &#43;894,7 @@ static void emit_extend(TCGContext *s, TCGReg r, int op)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arith(s, r, r, 0, SHIFT_SRL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;}</div>
-<div>@@ -977,7 &#43;977,7 @@ static void build_trampolines(TCGContext *s)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ra &#43;= 1;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((i &amp; MO_SIZE) == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((i &amp; MO_SIZE) == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Install the high part of the data. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arithi(s, ra, ra &#43; 1, 32, SHIFT_SRLX);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ra &#43;= 2;</div>
-<div>@@ -1217,7 &#43;1217,7 @@ static void tcg_out_qemu_ld(TCGContext *s, TCGReg data, TCGReg addr,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_REG, data, TCG_REG_O0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arithi(s, TCG_REG_O0, TCG_REG_O0, 32, SHIFT_SLLX);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arithi(s, TCG_REG_O1, TCG_REG_O1, 0, SHIFT_SRL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arith(s, data, TCG_REG_O0, TCG_REG_O1, ARITH_OR);</div>
-<div>@@ -1274,7 &#43;1274,7 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg data, TCGReg addr,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;param&#43;&#43;;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_REG, param&#43;&#43;, addrz);</div>
-<div>- &nbsp; &nbsp;if (!SPARC64 &amp;&amp; (memop &amp; MO_SIZE) == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (!SPARC64 &amp;&amp; (memop &amp; MO_SIZE) == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Skip the high-part; we'll perform the extract in the trampoline. &nbsp;*/</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;param&#43;&#43;;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>diff --git a/tcg/tcg-op-gvec.c b/tcg/tcg-op-gvec.c</div>
-<div>index e63622c..0c0eea5 100644</div>
-<div>--- a/tcg/tcg-op-gvec.c</div>
-<div>&#43;&#43;&#43; b/tcg/tcg-op-gvec.c</div>
-<div>@@ -312,7 &#43;312,7 @@ uint64_t (dup_const)(unsigned vece, uint64_t c)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0x0001000100010001ull * (uint16_t)c;</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0x0000000100000001ull * (uint32_t)c;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return c;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>
-<div>@@ -352,7 &#43;352,7 @@ static void gen_dup_i64(unsigned vece, TCGv_i64 out, TCGv_i64 in)</div>
-<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_deposit_i64(out, in, in, 32, 32);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_i64(out, in);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -443,7 &#43;443,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_ptr t_ptr;</div>
-<div>&nbsp; &nbsp; &nbsp;uint32_t i;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;assert(vece &lt;= (in_32 ? MO_UL : MO_64));</div>
-<div>&#43; &nbsp; &nbsp;assert(vece &lt;= (in_32 ? MO_UL : MO_UQ));</div>
-<div>&nbsp; &nbsp; &nbsp;assert(in_32 == NULL || in_64 == NULL);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* If we're storing 0, expand oprsz to maxsz. &nbsp;*/</div>
-<div>@@ -459,7 &#43;459,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>
-<div>&nbsp; &nbsp; &nbsp; */</div>
-<div>&nbsp; &nbsp; &nbsp;type = choose_vector_type(NULL, vece, oprsz,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(TCG_TARGET_REG_BITS == 64 &amp;&amp; in_32 == NULL</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; (in_64 == NULL || vece == MO_64)));</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; (in_64 == NULL || vece == MO_UQ)));</div>
-<div>&nbsp; &nbsp; &nbsp;if (type != 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec t_vec = tcg_temp_new_vec(type);</div>
-<div>&nbsp;</div>
-<div>@@ -502,7 &#43;502,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* For 64-bit hosts, use 64-bit constants for &quot;simple&quot; constants</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; or when we'd need too many 32-bit stores, or when a 64-bit</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; constant is really required. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|| (TCG_TARGET_REG_BITS == 64</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;&amp; (in_c == 0 || in_c == -1</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|| !check_size_impl(oprsz, 4)))) {</div>
-<div>@@ -534,7 &#43;534,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_addi_ptr(t_ptr, cpu_env, dofs);</div>
-<div>&nbsp; &nbsp; &nbsp;t_desc = tcg_const_i32(simd_desc(oprsz, maxsz, 0));</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (vece == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (vece == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (in_64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_gvec_dup64(t_ptr, t_desc, in_64);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>@@ -1438,7 &#43;1438,7 @@ void tcg_gen_gvec_dup_i64(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32_t maxsz, TCGv_i64 in)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;check_size_align(oprsz, maxsz, dofs);</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;do_dup(vece, dofs, oprsz, maxsz, NULL, in, 0);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1446,7 &#43;1446,7 @@ void tcg_gen_gvec_dup_mem(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32_t oprsz, uint32_t maxsz)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;check_size_align(oprsz, maxsz, dofs);</div>
-<div>- &nbsp; &nbsp;if (vece &lt;= MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (vece &lt;= MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGType type = choose_vector_type(NULL, vece, oprsz, 0);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (type != 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec t_vec = tcg_temp_new_vec(type);</div>
-<div>@@ -1512,7 &#43;1512,7 @@ void tcg_gen_gvec_dup64i(uint32_t dofs, uint32_t oprsz,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uint32_t maxsz, uint64_t x)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;check_size_align(oprsz, maxsz, dofs);</div>
-<div>- &nbsp; &nbsp;do_dup(MO_64, dofs, oprsz, maxsz, NULL, NULL, x);</div>
-<div>&#43; &nbsp; &nbsp;do_dup(MO_UQ, dofs, oprsz, maxsz, NULL, NULL, x);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp;void tcg_gen_gvec_dup32i(uint32_t dofs, uint32_t oprsz,</div>
-<div>@@ -1624,10 &#43;1624,10 @@ void tcg_gen_gvec_add(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_add64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_add,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1655,10 &#43;1655,10 @@ void tcg_gen_gvec_adds(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_adds64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_add,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, c, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1696,10 &#43;1696,10 @@ void tcg_gen_gvec_subs(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_subs64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sub,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, c, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1775,10 &#43;1775,10 @@ void tcg_gen_gvec_sub(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sub64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sub,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1806,10 &#43;1806,10 @@ void tcg_gen_gvec_mul(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_mul64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mul,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1835,10 &#43;1835,10 @@ void tcg_gen_gvec_muls(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_muls64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mul,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, c, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1870,9 &#43;1870,9 @@ void tcg_gen_gvec_ssadd(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ .fniv = tcg_gen_ssadd_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ssadd64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1896,9 &#43;1896,9 @@ void tcg_gen_gvec_sssub(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ .fniv = tcg_gen_sssub_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sssub64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1940,9 &#43;1940,9 @@ void tcg_gen_gvec_usadd(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_usadd_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_usadd64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -1984,9 &#43;1984,9 @@ void tcg_gen_gvec_ussub(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_ussub_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ussub64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2012,9 &#43;2012,9 @@ void tcg_gen_gvec_smin(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_smin_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_smin64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2040,9 &#43;2040,9 @@ void tcg_gen_gvec_umin(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_umin_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_umin64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2068,9 &#43;2068,9 @@ void tcg_gen_gvec_smax(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_smax_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_smax64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2096,9 &#43;2096,9 @@ void tcg_gen_gvec_umax(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_umax_vec,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_umax64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2171,10 &#43;2171,10 @@ void tcg_gen_gvec_neg(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_neg64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2(dofs, aofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2234,10 &#43;2234,10 @@ void tcg_gen_gvec_abs(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_abs64,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2(dofs, aofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2382,7 &#43;2382,7 @@ static const GVecGen2s gop_ands = {</div>
-<div>&nbsp; &nbsp; &nbsp;.fniv = tcg_gen_and_vec,</div>
-<div>&nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ands,</div>
-<div>&nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp;.vece = MO_64</div>
-<div>&#43; &nbsp; &nbsp;.vece = MO_UQ</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;void tcg_gen_gvec_ands(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>@@ -2407,7 &#43;2407,7 @@ static const GVecGen2s gop_xors = {</div>
-<div>&nbsp; &nbsp; &nbsp;.fniv = tcg_gen_xor_vec,</div>
-<div>&nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_xors,</div>
-<div>&nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp;.vece = MO_64</div>
-<div>&#43; &nbsp; &nbsp;.vece = MO_UQ</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;void tcg_gen_gvec_xors(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>@@ -2432,7 &#43;2432,7 @@ static const GVecGen2s gop_ors = {</div>
-<div>&nbsp; &nbsp; &nbsp;.fniv = tcg_gen_or_vec,</div>
-<div>&nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ors,</div>
-<div>&nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp;.vece = MO_64</div>
-<div>&#43; &nbsp; &nbsp;.vece = MO_UQ</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;void tcg_gen_gvec_ors(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>@@ -2491,10 &#43;2491,10 @@ void tcg_gen_gvec_shli(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shl64i,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_debug_assert(shift &gt;= 0 &amp;&amp; shift &lt; (8 &lt;&lt; vece));</div>
-<div>&nbsp; &nbsp; &nbsp;if (shift == 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_gvec_mov(vece, dofs, aofs, oprsz, maxsz);</div>
-<div>@@ -2542,10 &#43;2542,10 @@ void tcg_gen_gvec_shri(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shr64i,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_debug_assert(shift &gt;= 0 &amp;&amp; shift &lt; (8 &lt;&lt; vece));</div>
-<div>&nbsp; &nbsp; &nbsp;if (shift == 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_gvec_mov(vece, dofs, aofs, oprsz, maxsz);</div>
-<div>@@ -2607,10 &#43;2607,10 @@ void tcg_gen_gvec_sari(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sar64i,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_debug_assert(shift &gt;= 0 &amp;&amp; shift &lt; (8 &lt;&lt; vece));</div>
-<div>&nbsp; &nbsp; &nbsp;if (shift == 0) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_gvec_mov(vece, dofs, aofs, oprsz, maxsz);</div>
-<div>@@ -2660,7 &#43;2660,7 @@ do_gvec_shifts(unsigned vece, uint32_t dofs, uint32_t aofs, TCGv_i32 shift,</div>
-<div>&nbsp; &nbsp; &nbsp;check_overlap_2(dofs, aofs, maxsz);</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* If the backend has a scalar expansion, great. &nbsp;*/</div>
-<div>- &nbsp; &nbsp;type = choose_vector_type(g-&gt;s_list, vece, oprsz, vece == MO_64);</div>
-<div>&#43; &nbsp; &nbsp;type = choose_vector_type(g-&gt;s_list, vece, oprsz, vece == MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;if (type) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;const TCGOpcode *hold_list = tcg_swap_vecop_list(NULL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (type) {</div>
-<div>@@ -2692,15 &#43;2692,15 @@ do_gvec_shifts(unsigned vece, uint32_t dofs, uint32_t aofs, TCGv_i32 shift,</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;/* If the backend supports variable vector shifts, also cool. &nbsp;*/</div>
-<div>- &nbsp; &nbsp;type = choose_vector_type(g-&gt;v_list, vece, oprsz, vece == MO_64);</div>
-<div>&#43; &nbsp; &nbsp;type = choose_vector_type(g-&gt;v_list, vece, oprsz, vece == MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;if (type) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;const TCGOpcode *hold_list = tcg_swap_vecop_list(NULL);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec v_shift = tcg_temp_new_vec(type);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 sh64 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(sh64, shift);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_64, v_shift, sh64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_UQ, v_shift, sh64);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(sh64);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i32_vec(vece, v_shift, shift);</div>
-<div>@@ -2738,7 &#43;2738,7 @@ do_gvec_shifts(unsigned vece, uint32_t dofs, uint32_t aofs, TCGv_i32 shift,</div>
-<div>&nbsp; &nbsp; &nbsp;/* Otherwise fall back to integral... */</div>
-<div>&nbsp; &nbsp; &nbsp;if (vece == MO_UL &amp;&amp; check_size_impl(oprsz, 4)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_2s_i32(dofs, aofs, oprsz, shift, false, g-&gt;fni4);</div>
-<div>- &nbsp; &nbsp;} else if (vece == MO_64 &amp;&amp; check_size_impl(oprsz, 8)) {</div>
-<div>&#43; &nbsp; &nbsp;} else if (vece == MO_UQ &amp;&amp; check_size_impl(oprsz, 8)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 sh64 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(sh64, shift);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_2s_i64(dofs, aofs, oprsz, sh64, false, g-&gt;fni8);</div>
-<div>@@ -2785,7 &#43;2785,7 @@ void tcg_gen_gvec_shls(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.v_list = { INDEX_op_shlv_vec, 0 },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;do_gvec_shifts(vece, dofs, aofs, shift, oprsz, maxsz, &amp;g);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2807,7 &#43;2807,7 @@ void tcg_gen_gvec_shrs(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.v_list = { INDEX_op_shrv_vec, 0 },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;do_gvec_shifts(vece, dofs, aofs, shift, oprsz, maxsz, &amp;g);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2829,7 &#43;2829,7 @@ void tcg_gen_gvec_sars(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.v_list = { INDEX_op_sarv_vec, 0 },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;do_gvec_shifts(vece, dofs, aofs, shift, oprsz, maxsz, &amp;g);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2895,10 &#43;2895,10 @@ void tcg_gen_gvec_shlv(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shl64v,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -2958,10 &#43;2958,10 @@ void tcg_gen_gvec_shrv(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shr64v,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -3021,10 &#43;3021,10 @@ void tcg_gen_gvec_sarv(unsigned vece, uint32_t dofs, uint32_t aofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sar64v,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>
-<div>&nbsp; &nbsp; &nbsp;};</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>
-<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>@@ -3140,7 &#43;3140,7 @@ void tcg_gen_gvec_cmp(TCGCond cond, unsigned vece, uint32_t dofs,</div>
-<div>&nbsp; &nbsp; &nbsp; */</div>
-<div>&nbsp; &nbsp; &nbsp;hold_list = tcg_swap_vecop_list(cmp_list);</div>
-<div>&nbsp; &nbsp; &nbsp;type = choose_vector_type(cmp_list, vece, oprsz,</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCG_TARGET_REG_BITS == 64 &amp;&amp; vece == MO_64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCG_TARGET_REG_BITS == 64 &amp;&amp; vece == MO_UQ);</div>
-<div>&nbsp; &nbsp; &nbsp;switch (type) {</div>
-<div>&nbsp; &nbsp; &nbsp;case TCG_TYPE_V256:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Recall that ARM SVE allows vector sizes that are not a</div>
-<div>@@ -3166,7 &#43;3166,7 @@ void tcg_gen_gvec_cmp(TCGCond cond, unsigned vece, uint32_t dofs,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;case 0:</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64 &amp;&amp; check_size_impl(oprsz, 8)) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ &amp;&amp; check_size_impl(oprsz, 8)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_cmp_i64(dofs, aofs, bofs, oprsz, cond);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (vece == MO_UL &amp;&amp; check_size_impl(oprsz, 4)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_cmp_i32(dofs, aofs, bofs, oprsz, cond);</div>
-<div>diff --git a/tcg/tcg-op-vec.c b/tcg/tcg-op-vec.c</div>
-<div>index ff723ab..e8aea38 100644</div>
-<div>--- a/tcg/tcg-op-vec.c</div>
-<div>&#43;&#43;&#43; b/tcg/tcg-op-vec.c</div>
-<div>@@ -216,7 &#43;216,7 @@ void tcg_gen_mov_vec(TCGv_vec r, TCGv_vec a)</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;}</div>
-<div>&nbsp;</div>
-<div>-#define MO_REG &nbsp;(TCG_TARGET_REG_BITS == 64 ? MO_64 : MO_UL)</div>
-<div>&#43;#define MO_REG &nbsp;(TCG_TARGET_REG_BITS == 64 ? MO_UQ : MO_UL)</div>
-<div>&nbsp;</div>
-<div>&nbsp;static void do_dupi_vec(TCGv_vec r, unsigned vece, TCGArg a)</div>
-<div>&nbsp;{</div>
-<div>@@ -255,10 &#43;255,10 @@ void tcg_gen_dup64i_vec(TCGv_vec r, uint64_t a)</div>
-<div>&nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; a == deposit64(a, 32, 32, a)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_dupi_vec(r, MO_UL, a);</div>
-<div>&nbsp; &nbsp; &nbsp;} else if (TCG_TARGET_REG_BITS == 64 || a == (uint64_t)(int32_t)a) {</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;do_dupi_vec(r, MO_64, a);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;do_dupi_vec(r, MO_UQ, a);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 c = tcg_const_i64(a);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_64, r, c);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_UQ, r, c);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(c);</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp;}</div>
-<div>@@ -292,10 &#43;292,10 @@ void tcg_gen_dup_i64_vec(unsigned vece, TCGv_vec r, TCGv_i64 a)</div>
-<div>&nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg ai = tcgv_i64_arg(a);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_2(INDEX_op_dup_vec, type, vece, ri, ai);</div>
-<div>- &nbsp; &nbsp;} else if (vece == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;} else if (vece == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg al = tcgv_i32_arg(TCGV_LOW(a));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg ah = tcgv_i32_arg(TCGV_HIGH(a));</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_3(INDEX_op_dup2_vec, type, MO_64, ri, al, ah);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_3(INDEX_op_dup2_vec, type, MO_UQ, ri, al, ah);</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg ai = tcgv_i32_arg(TCGV_LOW(a));</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_2(INDEX_op_dup_vec, type, vece, ri, ai);</div>
-<div>@@ -709,10 &#43;709,10 @@ static void do_shifts(unsigned vece, TCGv_vec r, TCGv_vec a,</div>
-<div>&nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec vec_s = tcg_temp_new_vec(type);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 s64 = tcg_temp_new_i64();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(s64, s);</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_64, vec_s, s64);</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_UQ, vec_s, s64);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(s64);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i32_vec(vece, vec_s, s);</div>
-<div>diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c</div>
-<div>index 447683d..a9f3e13 100644</div>
-<div>--- a/tcg/tcg-op.c</div>
-<div>&#43;&#43;&#43; b/tcg/tcg-op.c</div>
-<div>@@ -2730,7 &#43;2730,7 @@ static inline TCGMemOp tcg_canonicalize_memop(TCGMemOp op, bool is64, bool st)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;op &amp;= ~MO_SIGN;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!is64) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_abort();</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -2862,7 &#43;2862,7 @@ void tcg_gen_qemu_ld_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;TCGMemOp orig_memop;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i32(TCGV_LOW(val), addr, idx, memop);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (memop &amp; MO_SIGN) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_i32(TCGV_HIGH(val), TCGV_LOW(val), 31);</div>
-<div>@@ -2881,7 &#43;2881,7 @@ void tcg_gen_qemu_ld_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>
-<div>&nbsp; &nbsp; &nbsp;if (!TCG_TARGET_HAS_MEMORY_BSWAP &amp;&amp; (memop &amp; MO_BSWAP)) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop &amp;= ~MO_BSWAP;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The bswap primitive requires zero-extended input. &nbsp;*/</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIGN) &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_64) {</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIGN) &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop &amp;= ~MO_SIGN;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -2902,7 &#43;2902,7 @@ void tcg_gen_qemu_ld_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_i64(val, val);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(val, val);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -2915,7 &#43;2915,7 @@ void tcg_gen_qemu_st_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;TCGv_i64 swap = NULL;</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_UQ) {</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i32(TCGV_LOW(val), addr, idx, memop);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>
-<div>&nbsp; &nbsp; &nbsp;}</div>
-<div>@@ -2936,7 &#43;2936,7 @@ void tcg_gen_qemu_st_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_i64(swap, val);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap32_i64(swap, swap);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>
-<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(swap, val);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>
-<div>@@ -3029,8 &#43;3029,8 @@ static void * const table_cmpxchg[16] = {</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UW | MO_BE] = gen_helper_atomic_cmpxchgw_be,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_LE] = gen_helper_atomic_cmpxchgl_le,</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_BE] = gen_helper_atomic_cmpxchgl_be,</div>
-<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_LE] = gen_helper_atomic_cmpxchgq_le)</div>
-<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_BE] = gen_helper_atomic_cmpxchgq_be)</div>
-<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_LE] = gen_helper_atomic_cmpxchgq_le)</div>
-<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_BE] = gen_helper_atomic_cmpxchgq_be)</div>
-<div>&nbsp;};</div>
-<div>&nbsp;</div>
-<div>&nbsp;void tcg_gen_atomic_cmpxchg_i32(TCGv_i32 retv, TCGv addr, TCGv_i32 cmpv,</div>
-<div>@@ -3099,7 &#43;3099,7 @@ void tcg_gen_atomic_cmpxchg_i64(TCGv_i64 retv, TCGv addr, TCGv_i64 cmpv,</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_i64(retv, t1);</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t1);</div>
-<div>- &nbsp; &nbsp;} else if ((memop &amp; MO_SIZE) == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;} else if ((memop &amp; MO_SIZE) == MO_UQ) {</div>
-<div>&nbsp;#ifdef CONFIG_ATOMIC64</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_atomic_cx_i64 gen;</div>
-<div>&nbsp;</div>
-<div>@@ -3207,7 &#43;3207,7 @@ static void do_atomic_op_i64(TCGv_i64 ret, TCGv addr, TCGv_i64 val,</div>
-<div>&nbsp;{</div>
-<div>&nbsp; &nbsp; &nbsp;memop = tcg_canonicalize_memop(memop, 1, 0);</div>
-<div>&nbsp;</div>
-<div>- &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_64) {</div>
-<div>&#43; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_UQ) {</div>
-<div>&nbsp;#ifdef CONFIG_ATOMIC64</div>
-<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_atomic_op_i64 gen;</div>
-<div>&nbsp;</div>
-<div>@@ -3253,8 &#43;3253,8 @@ static void * const table_##NAME[16] = { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UW | MO_BE] = gen_helper_atomic_##NAME##w_be, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_LE] = gen_helper_atomic_##NAME##l_le, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_BE] = gen_helper_atomic_##NAME##l_be, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div>
-<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_LE] = gen_helper_atomic_##NAME##q_le) &nbsp; &nbsp; \</div>
-<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_BE] = gen_helper_atomic_##NAME##q_be) &nbsp; &nbsp; \</div>
-<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_LE] = gen_helper_atomic_##NAME##q_le) &nbsp; &nbsp; \</div>
-<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_BE] = gen_helper_atomic_##NAME##q_be) &nbsp; &nbsp; \</div>
-<div>&nbsp;}; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div>
-<div>&nbsp;void tcg_gen_atomic_##NAME##_i32 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div>
-<div>&nbsp; &nbsp; &nbsp;(TCGv_i32 ret, TCGv addr, TCGv_i32 val, TCGArg idx, TCGMemOp memop) \</div>
-<div>diff --git a/tcg/tcg.h b/tcg/tcg.h</div>
-<div>index 4b6ee89..63e9897 100644</div>
-<div>--- a/tcg/tcg.h</div>
-<div>&#43;&#43;&#43; b/tcg/tcg.h</div>
-<div>@@ -371,28 &#43;371,29 @@ typedef enum TCGMemOp {</div>
-<div>&nbsp; &nbsp; &nbsp;MO_UB &nbsp; &nbsp;= MO_8,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_UW &nbsp; &nbsp;= MO_16,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_UL &nbsp; &nbsp;= MO_32,</div>
-<div>&#43; &nbsp; &nbsp;MO_UQ &nbsp; &nbsp;= MO_64,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_SB &nbsp; &nbsp;= MO_SIGN | MO_8,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_SW &nbsp; &nbsp;= MO_SIGN | MO_16,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_SL &nbsp; &nbsp;= MO_SIGN | MO_32,</div>
-<div>- &nbsp; &nbsp;MO_Q &nbsp; &nbsp; = MO_64,</div>
-<div>&#43; &nbsp; &nbsp;MO_SQ &nbsp; &nbsp;= MO_SIGN | MO_64,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;MO_LEUW &nbsp;= MO_LE | MO_UW,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_LEUL &nbsp;= MO_LE | MO_UL,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_LESW &nbsp;= MO_LE | MO_SW,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_LESL &nbsp;= MO_LE | MO_SL,</div>
-<div>- &nbsp; &nbsp;MO_LEQ &nbsp; = MO_LE | MO_Q,</div>
-<div>&#43; &nbsp; &nbsp;MO_LEQ &nbsp; = MO_LE | MO_UQ,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;MO_BEUW &nbsp;= MO_BE | MO_UW,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_BEUL &nbsp;= MO_BE | MO_UL,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_BESW &nbsp;= MO_BE | MO_SW,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_BESL &nbsp;= MO_BE | MO_SL,</div>
-<div>- &nbsp; &nbsp;MO_BEQ &nbsp; = MO_BE | MO_Q,</div>
-<div>&#43; &nbsp; &nbsp;MO_BEQ &nbsp; = MO_BE | MO_UQ,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;MO_TEUW &nbsp;= MO_TE | MO_UW,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_TEUL &nbsp;= MO_TE | MO_UL,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_TESW &nbsp;= MO_TE | MO_SW,</div>
-<div>&nbsp; &nbsp; &nbsp;MO_TESL &nbsp;= MO_TE | MO_SL,</div>
-<div>- &nbsp; &nbsp;MO_TEQ &nbsp; = MO_TE | MO_Q,</div>
-<div>&#43; &nbsp; &nbsp;MO_TEQ &nbsp; = MO_TE | MO_UQ,</div>
-<div>&nbsp;</div>
-<div>&nbsp; &nbsp; &nbsp;MO_SSIZE = MO_SIZE | MO_SIGN,</div>
-<div>&nbsp;} TCGMemOp;</div>
-<div>--&nbsp;</div>
-<div>1.8.3.1</div>
-<div><br>
-<br>
-</div>
-<p><br>
-</p>
-</body>
-</html>
diff --git a/a/2.hdr b/a/2.hdr
deleted file mode 100644
index e54d0ae..0000000
--- a/a/2.hdr
+++ /dev/null
@@ -1,2 +0,0 @@
-Content-Type: text/html; charset="iso-8859-1"
-Content-Transfer-Encoding: quoted-printable
diff --git a/a/content_digest b/N1/content_digest
index 5de88c9..db42956 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,34 +1,34 @@
  "ref\0e9c6e5310b1a4863be45d45bf087fc3d@tpw09926dag18e.domain1.systemhost.net\0"
  "From\0<tony.nguyen@bt.com>\0"
- "Subject\0[Qemu-riscv] [Qemu-devel] [PATCH v2 04/20] tcg: Replace MO_64 with MO_UQ alias\0"
+ "Subject\0[Qemu-devel] [PATCH v2 04/20] tcg: Replace MO_64 with MO_UQ alias\0"
  "Date\0Mon, 22 Jul 2019 15:42:43 +0000\0"
  "To\0<qemu-devel@nongnu.org>\0"
- "Cc\0<peter.maydell@linaro.org>"
-  <walling@linux.ibm.com>
-  <david@redhat.com>
-  <palmer@sifive.com>
-  <mark.cave-ayland@ilande.co.uk>
-  <Alistair.Francis@wdc.com>
-  <arikalo@wavecomp.com>
-  <mst@redhat.com>
-  <pasic@linux.ibm.com>
-  <borntraeger@de.ibm.com>
-  <rth@twiddle.net>
-  <atar4qemu@gmail.com>
-  <ehabkost@redhat.com>
-  <sw@weilnetz.de>
-  <alex.williamson@redhat.com>
-  <qemu-arm@nongnu.org>
-  <david@gibson.dropbear.id.au>
-  <qemu-riscv@nongnu.org>
-  <cohuck@redhat.com>
-  <claudio.fontana@huawei.com>
-  <qemu-s390x@nongnu.org>
-  <qemu-ppc@nongnu.org>
-  <amarkovic@wavecomp.com>
-  <pbonzini@redhat.com>
- " <aurelien@aurel32.net>\0"
- "\01:1\0"
+ "Cc\0peter.maydell@linaro.org"
+  walling@linux.ibm.com
+  mst@redhat.com
+  palmer@sifive.com
+  mark.cave-ayland@ilande.co.uk
+  Alistair.Francis@wdc.com
+  arikalo@wavecomp.com
+  david@redhat.com
+  pasic@linux.ibm.com
+  borntraeger@de.ibm.com
+  rth@twiddle.net
+  atar4qemu@gmail.com
+  ehabkost@redhat.com
+  sw@weilnetz.de
+  qemu-s390x@nongnu.org
+  qemu-arm@nongnu.org
+  david@gibson.dropbear.id.au
+  qemu-riscv@nongnu.org
+  cohuck@redhat.com
+  claudio.fontana@huawei.com
+  alex.williamson@redhat.com
+  qemu-ppc@nongnu.org
+  amarkovic@wavecomp.com
+  pbonzini@redhat.com
+ " aurelien@aurel32.net\0"
+ "\00:1\0"
  "b\0"
  "Preparation for splitting MO_64 out from TCGMemOp into new accelerator\n"
  "independent MemOp.\n"
@@ -3312,3307 +3312,5 @@
  " } TCGMemOp;\n"
  "--\n"
  1.8.3.1
- "\01:2\0"
- "b\0"
- "<html>\r\n"
- "<head>\r\n"
- "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\r\n"
- "<style type=\"text/css\" style=\"display:none\"><!-- P { margin-top: 0px; margin-bottom: 0px; } .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(128, 0, 0); }--></style>\r\n"
- "</head>\r\n"
- "<body dir=\"ltr\" style=\"font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;\">\r\n"
- "<p></p>\r\n"
- "<div><span style=\"font-size: 12pt;\">Preparation for splitting MO_64 out from TCGMemOp into new accelerator</span><br>\r\n"
- "</div>\r\n"
- "<div>independent MemOp.</div>\r\n"
- "<div><br>\r\n"
- "</div>\r\n"
- "<div>As MO_64 will be a value of MemOp, existing TCGMemOp comparisons and</div>\r\n"
- "<div>coercions will trigger -Wenum-compare and -Wenum-conversion.</div>\r\n"
- "<div><br>\r\n"
- "</div>\r\n"
- "<div>Signed-off-by: Tony Nguyen &lt;tony.nguyen@bt.com&gt;</div>\r\n"
- "<div>---</div>\r\n"
- "<div>&nbsp;target/arm/sve_helper.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; 2 &#43;-</div>\r\n"
- "<div>&nbsp;target/arm/translate-a64.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| 270 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;------------------</div>\r\n"
- "<div>&nbsp;target/arm/translate-sve.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;18 &#43;--</div>\r\n"
- "<div>&nbsp;target/arm/translate-vfp.inc.c &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>\r\n"
- "<div>&nbsp;target/arm/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;30 &#43;&#43;--</div>\r\n"
- "<div>&nbsp;target/i386/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | 122 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;--------</div>\r\n"
- "<div>&nbsp;target/mips/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; 2 &#43;-</div>\r\n"
- "<div>&nbsp;target/ppc/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;28 &#43;&#43;--</div>\r\n"
- "<div>&nbsp;target/ppc/translate/fp-impl.inc.c &nbsp;| &nbsp; 4 &#43;-</div>\r\n"
- "<div>&nbsp;target/ppc/translate/vmx-impl.inc.c | &nbsp;34 &#43;&#43;---</div>\r\n"
- "<div>&nbsp;target/ppc/translate/vsx-impl.inc.c | &nbsp;18 &#43;--</div>\r\n"
- "<div>&nbsp;target/s390x/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>\r\n"
- "<div>&nbsp;target/s390x/translate_vx.inc.c &nbsp; &nbsp; | &nbsp; 6 &#43;-</div>\r\n"
- "<div>&nbsp;target/s390x/vec.h &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>\r\n"
- "<div>&nbsp;target/sparc/translate.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 4 &#43;-</div>\r\n"
- "<div>&nbsp;tcg/aarch64/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;20 &#43;--</div>\r\n"
- "<div>&nbsp;tcg/arm/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;12 &#43;-</div>\r\n"
- "<div>&nbsp;tcg/i386/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;42 &#43;&#43;&#43;---</div>\r\n"
- "<div>&nbsp;tcg/mips/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;12 &#43;-</div>\r\n"
- "<div>&nbsp;tcg/ppc/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;18 &#43;--</div>\r\n"
- "<div>&nbsp;tcg/riscv/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 6 &#43;-</div>\r\n"
- "<div>&nbsp;tcg/s390/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;10 &#43;-</div>\r\n"
- "<div>&nbsp;tcg/sparc/tcg-target.inc.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; 8 &#43;-</div>\r\n"
- "<div>&nbsp;tcg/tcg-op-gvec.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | 132 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;---------</div>\r\n"
- "<div>&nbsp;tcg/tcg-op-vec.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;14 &#43;-</div>\r\n"
- "<div>&nbsp;tcg/tcg-op.c &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;24 &#43;&#43;--</div>\r\n"
- "<div>&nbsp;tcg/tcg.h &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; 9 &#43;-</div>\r\n"
- "<div>&nbsp;27 files changed, 430 insertions(&#43;), 427 deletions(-)</div>\r\n"
- "<div><br>\r\n"
- "</div>\r\n"
- "<div>diff --git a/target/arm/sve_helper.c b/target/arm/sve_helper.c</div>\r\n"
- "<div>index fa705c4..1cfd746 100644</div>\r\n"
- "<div>--- a/target/arm/sve_helper.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/arm/sve_helper.c</div>\r\n"
- "<div>@@ -5165,7 &#43;5165,7 @@ static inline void sve_ldff1_zd(CPUARMState *env, void *vd, void *vg, void *vm,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;target_ulong addr;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* Skip to the first true predicate. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp;reg_off = find_next_active(vg, 0, reg_max, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;reg_off = find_next_active(vg, 0, reg_max, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (likely(reg_off &lt; reg_max)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Perform one normal read, which will fault or not. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_helper_retaddr(ra);</div>\r\n"
- "<div>diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c</div>\r\n"
- "<div>index 0b92e6d..3f9d103 100644</div>\r\n"
- "<div>--- a/target/arm/translate-a64.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/arm/translate-a64.c</div>\r\n"
- "<div>@@ -463,7 &#43;463,7 @@ static inline int fp_reg_offset(DisasContext *s, int regno, TCGMemOp size)</div>\r\n"
- "<div>&nbsp;/* Offset of the high half of the 128 bit vector Qn */</div>\r\n"
- "<div>&nbsp;static inline int fp_reg_hi_offset(DisasContext *s, int regno)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;return vec_reg_offset(s, regno, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;return vec_reg_offset(s, regno, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;/* Convenience accessors for reading and writing single and double</div>\r\n"
- "<div>@@ -476,7 &#43;476,7 @@ static TCGv_i64 read_fp_dreg(DisasContext *s, int reg)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i64 v = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_gen_ld_i64(v, cpu_env, fp_reg_offset(s, reg, MO_64));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_gen_ld_i64(v, cpu_env, fp_reg_offset(s, reg, MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;return v;</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -501,7 &#43;501,7 @@ static TCGv_i32 read_fp_hreg(DisasContext *s, int reg)</div>\r\n"
- "<div>&nbsp; */</div>\r\n"
- "<div>&nbsp;static void clear_vec_high(DisasContext *s, bool is_q, int rd)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, rd, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, rd, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;unsigned vsz = vec_full_reg_size(s);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>\r\n"
- "<div>@@ -516,7 &#43;516,7 @@ static void clear_vec_high(DisasContext *s, bool is_q, int rd)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;void write_fp_dreg(DisasContext *s, int reg, TCGv_i64 v)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, reg, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;unsigned ofs = fp_reg_offset(s, reg, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_st_i64(v, cpu_env, ofs);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;clear_vec_high(s, false, reg);</div>\r\n"
- "<div>@@ -918,7 &#43;918,7 @@ static void do_fp_st(DisasContext *s, int srcidx, TCGv_i64 tcg_addr, int size)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* This writes the bottom N bits of a 128 bit wide vector to memory */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tmp = tcg_temp_new_i64();</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_gen_ld_i64(tmp, cpu_env, fp_reg_offset(s, srcidx, MO_64));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_gen_ld_i64(tmp, cpu_env, fp_reg_offset(s, srcidx, MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (size &lt; 4) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(tmp, tcg_addr, get_mem_index(s),</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data &#43; size);</div>\r\n"
- "<div>@@ -928,10 &#43;928,10 @@ static void do_fp_st(DisasContext *s, int srcidx, TCGv_i64 tcg_addr, int size)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(tmp, be ? tcg_hiaddr : tcg_addr, get_mem_index(s),</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tmp, cpu_env, fp_reg_hi_offset(s, srcidx));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(tmp, be ? tcg_addr : tcg_hiaddr, get_mem_index(s),</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_hiaddr);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -960,13 &#43;960,13 @@ static void do_fp_ld(DisasContext *s, int destidx, TCGv_i64 tcg_addr, int size)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(tmplo, be ? tcg_hiaddr : tcg_addr, get_mem_index(s),</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(tmphi, be ? tcg_addr : tcg_hiaddr, get_mem_index(s),</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_Q);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;be_data | MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_hiaddr);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_gen_st_i64(tmplo, cpu_env, fp_reg_offset(s, destidx, MO_64));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_gen_st_i64(tmplo, cpu_env, fp_reg_offset(s, destidx, MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_st_i64(tmphi, cpu_env, fp_reg_hi_offset(s, destidx));</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tmplo);</div>\r\n"
- "<div>@@ -1011,8 &#43;1011,8 @@ static void read_vec_element(DisasContext *s, TCGv_i64 tcg_dest, int srcidx,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_SL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld32s_i64(tcg_dest, cpu_env, vect_off);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64|MO_SIGN:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_SQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tcg_dest, cpu_env, vect_off);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -1061,7 &#43;1061,7 @@ static void write_vec_element(DisasContext *s, TCGv_i64 tcg_src, int destidx,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st32_i64(tcg_src, cpu_env, vect_off);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st_i64(tcg_src, cpu_env, vect_off);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -2207,7 &#43;2207,7 @@ static void gen_load_exclusive(DisasContext *s, int rt, int rt2,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert(size &gt;= 2);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (size == 2) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The pair must be single-copy atomic for the doubleword. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_64 | MO_ALIGN;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_UQ | MO_ALIGN;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(cpu_exclusive_val, addr, idx, memop);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;be_data == MO_LE) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extract_i64(cpu_reg(s, rt), cpu_exclusive_val, 0, 32);</div>\r\n"
- "<div>@@ -2219,7 &#43;2219,7 @@ static void gen_load_exclusive(DisasContext *s, int rt, int rt2,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The pair must be single-copy atomic for *each* doubleword, not</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the entire quadword, however it must be quadword aligned. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop |= MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(cpu_exclusive_val, addr, idx,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop | MO_ALIGN_16);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2271,7 &#43;2271,7 @@ static void gen_store_exclusive(DisasContext *s, int rd, int rt, int rt2,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_atomic_cmpxchg_i64(tmp, cpu_exclusive_addr,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cpu_exclusive_val, tmp,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get_mem_index(s),</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_64 | MO_ALIGN | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_UQ | MO_ALIGN | s-&gt;be_data);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_setcond_i64(TCG_COND_NE, tmp, tmp, cpu_exclusive_val);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (tb_cflags(s-&gt;base.tb) &amp; CF_PARALLEL) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!HAVE_CMPXCHG128) {</div>\r\n"
- "<div>@@ -2355,7 &#43;2355,7 @@ static void gen_compare_and_swap_pair(DisasContext *s, int rs, int rt,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_atomic_cmpxchg_i64(cmp, clean_addr, cmp, val, memidx,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_64 | MO_ALIGN | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MO_UQ | MO_ALIGN | s-&gt;be_data);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(val);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;be_data == MO_LE) {</div>\r\n"
- "<div>@@ -2389,9 &#43;2389,9 @@ static void gen_compare_and_swap_pair(DisasContext *s, int rs, int rt,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Load the two words, in memory order. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(d1, clean_addr, memidx,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MO_64 | MO_ALIGN_16 | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MO_UQ | MO_ALIGN_16 | s-&gt;be_data);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_i64(a2, clean_addr, 8);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(d2, a2, memidx, MO_64 | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(d2, a2, memidx, MO_UQ | s-&gt;be_data);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Compare the two words, also in memory order. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_setcond_i64(TCG_COND_EQ, c1, d1, s1);</div>\r\n"
- "<div>@@ -2401,8 &#43;2401,8 @@ static void gen_compare_and_swap_pair(DisasContext *s, int rs, int rt,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* If compare equal, write back new data, else write back old data. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movcond_i64(TCG_COND_NE, c1, c2, zero, t1, d1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movcond_i64(TCG_COND_NE, c2, c2, zero, t2, d2);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c1, clean_addr, memidx, MO_64 | s-&gt;be_data);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c2, a2, memidx, MO_64 | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c1, clean_addr, memidx, MO_UQ | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i64(c2, a2, memidx, MO_UQ | s-&gt;be_data);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(a2);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(c1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(c2);</div>\r\n"
- "<div>@@ -5271,7 &#43;5271,7 @@ static void handle_fp_compare(DisasContext *s, int size,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tcg_flags = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_ptr fpst = get_fpstatus_ptr(size == MO_UW);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (size == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_vn, tcg_vm;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_vn = read_fp_dreg(s, rn);</div>\r\n"
- "<div>@@ -5357,7 &#43;5357,7 @@ static void disas_fp_compare(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UL;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 1:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 3:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UW;</div>\r\n"
- "<div>@@ -5408,7 &#43;5408,7 @@ static void disas_fp_ccomp(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UL;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 1:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 3:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UW;</div>\r\n"
- "<div>@@ -5474,7 &#43;5474,7 @@ static void disas_fp_csel(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UL;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 1:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 3:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UW;</div>\r\n"
- "<div>@@ -6279,7 &#43;6279,7 @@ static void disas_fp_imm(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UL;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 1:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 3:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sz = MO_UW;</div>\r\n"
- "<div>@@ -6585,7 &#43;6585,7 @@ static void handle_fmov(DisasContext *s, int rd, int rn, int type, bool itof)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 1:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 64 bit */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tcg_rd, cpu_env, fp_reg_offset(s, rn, MO_64));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(tcg_rd, cpu_env, fp_reg_offset(s, rn, MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 2:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 64 bits from top half */</div>\r\n"
- "<div>@@ -6819,9 &#43;6819,9 @@ static void disas_simd_ext(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; * extracting 64 bits from a 64:64 concatenation.</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rn, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rn, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (pos != 0) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rm, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rm, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_ext64(s, tcg_resh, tcg_resl, pos);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_i64(tcg_resh, 0);</div>\r\n"
- "<div>@@ -6839,22 &#43;6839,22 @@ static void disas_simd_ext(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pos -= 64;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, elt-&gt;reg, elt-&gt;elt, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, elt-&gt;reg, elt-&gt;elt, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elt&#43;&#43;;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, elt-&gt;reg, elt-&gt;elt, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, elt-&gt;reg, elt-&gt;elt, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elt&#43;&#43;;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (pos != 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_ext64(s, tcg_resh, tcg_resl, pos);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_hh = tcg_temp_new_i64();</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_hh, elt-&gt;reg, elt-&gt;elt, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_hh, elt-&gt;reg, elt-&gt;elt, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_ext64(s, tcg_hh, tcg_resh, pos);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_hh);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resl);</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resh);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -6895,12 &#43;6895,12 @@ static void disas_simd_tb(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_resh = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (is_tblx) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_i64(tcg_resl, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (is_tblx &amp;&amp; is_q) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_i64(tcg_resh, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -6908,11 &#43;6908,11 @@ static void disas_simd_tb(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_idx = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_regno = tcg_const_i32(rn);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_numregs = tcg_const_i32(len &#43; 1);</div>\r\n"
- "<div>- &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;gen_helper_simd_tbl(tcg_resl, cpu_env, tcg_resl, tcg_idx,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_regno, tcg_numregs);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (is_q) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_simd_tbl(tcg_resh, cpu_env, tcg_resh, tcg_idx,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_regno, tcg_numregs);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -6920,9 &#43;6920,9 @@ static void disas_simd_tb(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_regno);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_numregs);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resl);</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resh);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -7009,9 &#43;7009,9 @@ static void disas_simd_zip_trn(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resl, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resl);</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_resh, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_resh);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -7625,9 &#43;7625,9 @@ static void disas_simd_mod_imm(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* ORR or BIC, with BIC negation to AND handled above. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_neg) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_andi, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_andi, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_ori, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_gvec_fn2i(s, is_q, rd, rd, imm, tcg_gen_gvec_ori, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>@@ -7702,7 &#43;7702,7 @@ static void disas_simd_scalar_pairwise(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UW;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = extract32(size, 0, 1) ? MO_64 : MO_UL;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size = extract32(size, 0, 1) ? MO_UQ : MO_UL;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!fp_access_check(s)) {</div>\r\n"
- "<div>@@ -7716,13 &#43;7716,13 @@ static void disas_simd_scalar_pairwise(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (size == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op1 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rn, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rn, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x3b: /* ADDP */</div>\r\n"
- "<div>@@ -8085,9 &#43;8085,9 @@ static void handle_vec_simd_sqshrn(DisasContext *s, bool is_scalar, bool is_q,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (round) {</div>\r\n"
- "<div>@@ -8155,9 &#43;8155,9 @@ static void handle_simd_qshl(DisasContext *s, bool scalar, bool is_q,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; maxpass; pass&#43;&#43;) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_op, cpu_env, tcg_op, tcg_shift);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -8228,11 &#43;8228,11 @@ static void handle_simd_intfp_conv(DisasContext *s, int rd, int rn,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGMemOp mop = size | (is_signed ? MO_SIGN : 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;int pass;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (fracbits || size == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (fracbits || size == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_shift = tcg_const_i32(fracbits);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (size == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_int64 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_double = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -8249,7 &#43;8249,7 @@ static void handle_simd_intfp_conv(DisasContext *s, int rd, int rn,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (elements == 1) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_fp_dreg(s, rd, tcg_double);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_double, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_double, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -8331,7 &#43;8331,7 @@ static void handle_simd_shift_intfp_conv(DisasContext *s, bool is_scalar,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;int immhb = immh &lt;&lt; 3 | immb;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (immh &amp; 8) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!is_scalar &amp;&amp; !is_q) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>@@ -8376,7 &#43;8376,7 @@ static void handle_simd_shift_fpint_conv(DisasContext *s, bool is_scalar,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i32 tcg_rmode, tcg_shift;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (immh &amp; 0x8) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;size = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;size = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!is_scalar &amp;&amp; !is_q) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>@@ -8408,19 &#43;8408,19 @@ static void handle_simd_shift_fpint_conv(DisasContext *s, bool is_scalar,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;fracbits = (16 &lt;&lt; size) - immhb;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_shift = tcg_const_i32(fracbits);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (size == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (size == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int maxpass = is_scalar ? 1 : 2;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; maxpass; pass&#43;&#43;) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_u) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_touqd(tcg_op, tcg_op, tcg_shift, tcg_fpstatus);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_tosqd(tcg_op, tcg_op, tcg_shift, tcg_fpstatus);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_op, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clear_vec_high(s, is_q, rd);</div>\r\n"
- "<div>@@ -8601,7 &#43;8601,7 @@ static void disas_simd_scalar_three_reg_diff(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_neg_i64(tcg_res, tcg_res);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* fall through */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x9: /* SQDMLAL, SQDMLAL2 */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_addl_saturate_s64(tcg_res, cpu_env,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res, tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>@@ -8751,8 &#43;8751,8 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (fpopcode) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x39: /* FMLS */</div>\r\n"
- "<div>@@ -8760,7 &#43;8760,7 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_negd(tcg_op1, tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* fall through */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x19: /* FMLA */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_muladdd(tcg_res, tcg_op1, tcg_op2,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tcg_res, fpst);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>@@ -8820,7 &#43;8820,7 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>\r\n"
- "<div>@@ -8905,7 &#43;8905,7 @@ static void handle_3same_float(DisasContext *s, int size, int elements,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_tmp = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(tcg_tmp, tcg_res);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_tmp, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_tmp, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_tmp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element_i32(s, tcg_res, rd, pass, MO_UL);</div>\r\n"
- "<div>@@ -9381,7 &#43;9381,7 @@ static void handle_2misc_fcmp_zero(DisasContext *s, int opcode,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bool is_scalar, bool is_u, bool is_q,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int size, int rn, int rd)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;bool is_double = (size == MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;bool is_double = (size == MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_ptr fpst;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (!fp_access_check(s)) {</div>\r\n"
- "<div>@@ -9419,13 &#43;9419,13 @@ static void handle_2misc_fcmp_zero(DisasContext *s, int opcode,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (swap) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_res, tcg_zero, tcg_op, fpst);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_res, tcg_op, tcg_zero, fpst);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_zero);</div>\r\n"
- "<div>@@ -9526,7 &#43;9526,7 @@ static void handle_2misc_reciprocal(DisasContext *s, int opcode,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int pass;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x3d: /* FRECPE */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_recpe_f64(tcg_res, tcg_op, fpst);</div>\r\n"
- "<div>@@ -9540,7 &#43;9540,7 @@ static void handle_2misc_reciprocal(DisasContext *s, int opcode,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>\r\n"
- "<div>@@ -9615,7 &#43;9615,7 @@ static void handle_2misc_narrow(DisasContext *s, bool scalar,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (scalar) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, size &#43; 1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[pass] = tcg_temp_new_i32();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -9711,15 &#43;9711,15 @@ static void handle_2misc_satacc(DisasContext *s, bool is_scalar, bool is_u,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int pass;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rd, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_rd, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_u) { /* USQADD */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_uqadd_s64(tcg_rd, cpu_env, tcg_rn, tcg_rd);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else { /* SUQADD */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_sqadd_u64(tcg_rd, cpu_env, tcg_rn, tcg_rd);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rd);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rn);</div>\r\n"
- "<div>@@ -9776,7 &#43;9776,7 @@ static void handle_2misc_satacc(DisasContext *s, bool is_scalar, bool is_u,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (is_scalar) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_zero = tcg_const_i64(0);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_zero, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_zero, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_zero);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element_i32(s, tcg_rd, rd, pass, MO_UL);</div>\r\n"
- "<div>@@ -10146,7 &#43;10146,7 @@ static void handle_vec_simd_wshli(DisasContext *s, bool is_q, bool is_u,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; * so if rd == rn we would overwrite parts of our input.</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; * So load everything right now and use shifts in the main loop.</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>- &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, is_q ? 1 : 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_rn, rn, is_q ? 1 : 0, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;for (i = 0; i &lt; elements; i&#43;&#43;) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_i64(tcg_rd, tcg_rn, i * esize);</div>\r\n"
- "<div>@@ -10183,7 &#43;10183,7 @@ static void handle_vec_simd_shrn(DisasContext *s, bool is_q,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_rn = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_rd = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_final = tcg_temp_new_i64();</div>\r\n"
- "<div>- &nbsp; &nbsp;read_vec_element(s, tcg_final, rd, is_q ? 1 : 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_final, rd, is_q ? 1 : 0, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (round) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint64_t round_const = 1ULL &lt;&lt; (shift - 1);</div>\r\n"
- "<div>@@ -10201,9 &#43;10201,9 @@ static void handle_vec_simd_shrn(DisasContext *s, bool is_q,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (!is_q) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_final, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (round) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_round);</div>\r\n"
- "<div>@@ -10335,8 &#43;10335,8 @@ static void handle_3rd_widening(DisasContext *s, int is_q, int is_u, int size,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (accop != 0) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* size == 2 means two 32x32-&gt;64 operations; this is worth special</div>\r\n"
- "<div>@@ -10522,8 &#43;10522,8 @@ static void handle_3rd_widening(DisasContext *s, int is_q, int is_u, int size,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[0]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[1]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>@@ -10546,7 &#43;10546,7 @@ static void handle_3rd_wide(DisasContext *s, int is_q, int is_u, int size,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NeonGenWidenFn *widenfn = widenfns[size][is_u];</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element_i32(s, tcg_op2, rm, part &#43; pass, MO_UL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;widenfn(tcg_op2_wide, tcg_op2);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_op2);</div>\r\n"
- "<div>@@ -10558,7 &#43;10558,7 @@ static void handle_3rd_wide(DisasContext *s, int is_q, int is_u, int size,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>@@ -10589,8 &#43;10589,8 @@ static void handle_3rd_narrowing(DisasContext *s, int is_q, int is_u, int size,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NeonGenNarrowFn *gennarrow = narrowfns[size][is_u];</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_neon_addl(size, (opcode == 6), tcg_wideres, tcg_op1, tcg_op2);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -10621,12 &#43;10621,12 @@ static void handle_pmull_64(DisasContext *s, int is_q, int rd, int rn, int rm)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, is_q, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, is_q, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, is_q, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, is_q, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;gen_helper_neon_pmull_64_lo(tcg_res, tcg_op1, tcg_op2);</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;gen_helper_neon_pmull_64_hi(tcg_res, tcg_op1, tcg_op2);</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>\r\n"
- "<div>@@ -10814,8 &#43;10814,8 @@ static void handle_simd_3same_pair(DisasContext *s, int is_q, int u, int opcode,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int passreg = (pass == 0) ? rn : rm;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, passreg, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, passreg, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, passreg, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, passreg, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[pass] = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>\r\n"
- "<div>@@ -10846,7 &#43;10846,7 @@ static void handle_simd_3same_pair(DisasContext *s, int is_q, int u, int opcode,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>@@ -10971,7 &#43;10971,7 @@ static void disas_simd_3same_float(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;handle_simd_3same_pair(s, is_q, 0, fpopcode, size ? MO_64 : MO_UL,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;handle_simd_3same_pair(s, is_q, 0, fpopcode, size ? MO_UQ : MO_UL,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rn, rm, rd);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 0x1b: /* FMULX */</div>\r\n"
- "<div>@@ -11155,12 &#43;11155,12 @@ static void disas_simd_3same_int(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op2 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;handle_3same_64(s, opcode, u, tcg_res, tcg_op1, tcg_op2);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>\r\n"
- "<div>@@ -11714,7 &#43;11714,7 @@ static void handle_2misc_widening(DisasContext *s, int opcode, bool is_q,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i32(tcg_op);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>@@ -11774,7 &#43;11774,7 @@ static void handle_rev(DisasContext *s, int opcode, bool u,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap32_i64(tcg_tmp, tcg_tmp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(tcg_tmp, tcg_tmp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -11803,8 &#43;11803,8 @@ static void handle_rev(DisasContext *s, int opcode, bool u,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_rn, off, esize);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd_hi, rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd, rd, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_rd_hi, rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rd_hi);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_rd);</div>\r\n"
- "<div>@@ -11839,7 &#43;11839,7 @@ static void handle_2misc_pairwise(DisasContext *s, int opcode, bool u,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rn, pass * 2 &#43; 1, memop);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_add_i64(tcg_res[pass], tcg_op1, tcg_op2);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (accum) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_add_i64(tcg_res[pass], tcg_res[pass], tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -11859,11 &#43;11859,11 @@ static void handle_2misc_pairwise(DisasContext *s, int opcode, bool u,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[pass] = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;genfn(tcg_res[pass], tcg_op);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (accum) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (size == 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_neon_addl_u16(tcg_res[pass],</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tcg_res[pass], tcg_op);</div>\r\n"
- "<div>@@ -11879,7 &#43;11879,7 @@ static void handle_2misc_pairwise(DisasContext *s, int opcode, bool u,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_const_i64(0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>@@ -11909,7 &#43;11909,7 @@ static void handle_shll(DisasContext *s, bool is_q, int size, int rn, int rd)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>@@ -12233,12 &#43;12233,12 @@ static void disas_simd_two_reg_misc(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;handle_2misc_64(s, opcode, u, tcg_res, tcg_op,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_rmode, tcg_fpstatus);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>\r\n"
- "<div>@@ -12856,7 &#43;12856,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;is_fp16 = true;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL: /* single precision */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64: /* double precision */</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ: /* double precision */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>\r\n"
- "<div>@@ -12875,7 &#43;12875,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;is_fp16 = true;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>\r\n"
- "<div>@@ -12886,7 &#43;12886,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default: /* integer */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (size) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UB:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -12906,7 &#43;12906,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;index = h &lt;&lt; 1 | l;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm |= m &lt;&lt; 4;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (l || !is_q) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unallocated_encoding(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>@@ -12946,7 &#43;12946,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vec_full_reg_offset(s, rn),</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vec_full_reg_offset(s, rm), fpst,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; is_q ? 16 : 8, vec_full_reg_size(s), data,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; size == MO_64</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; size == MO_UQ</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? gen_helper_gvec_fcmlas_idx</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : gen_helper_gvec_fcmlah_idx);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_ptr(fpst);</div>\r\n"
- "<div>@@ -12976,13 &#43;12976,13 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;assert(is_fp &amp;&amp; is_q &amp;&amp; !is_long);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, index, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_idx, rm, index, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; (is_scalar ? 1 : 2); pass&#43;&#43;) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_op = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 tcg_res = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op, rn, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (16 * u &#43; opcode) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x05: /* FMLS */</div>\r\n"
- "<div>@@ -12990,7 &#43;12990,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_negd(tcg_op, tcg_op);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* fall through */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x01: /* FMLA */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_vfp_muladdd(tcg_res, tcg_op, tcg_idx, tcg_res, fpst);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x09: /* FMUL */</div>\r\n"
- "<div>@@ -13003,7 &#43;13003,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res, rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -13241,7 &#43;13241,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Accumulating op: handle accumulate step */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x2: /* SMLAL, SMLAL2, UMLAL, UMLAL2 */</div>\r\n"
- "<div>@@ -13316,7 &#43;13316,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Accumulating op: handle accumulate step */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (opcode) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x2: /* SMLAL, SMLAL2, UMLAL, UMLAL2 */</div>\r\n"
- "<div>@@ -13352,7 &#43;13352,7 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[pass], rd, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_res[pass]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -13639,14 &#43;13639,14 @@ static void disas_crypto_three_reg_sha512(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_rotli_i64(tcg_res[pass], tcg_op2, 1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_xor_i64(tcg_res[pass], tcg_res[pass], tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>\r\n"
- "<div>@@ -13750,9 &#43;13750,9 @@ static void disas_crypto_four_reg(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op3, ra, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op3, ra, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (op0 == 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* EOR3 */</div>\r\n"
- "<div>@@ -13763,8 &#43;13763,8 @@ static void disas_crypto_four_reg(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_xor_i64(tcg_res[pass], tcg_res[pass], tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>\r\n"
- "<div>@@ -13832,14 &#43;13832,14 @@ static void disas_crypto_xar(DisasContext *s, uint32_t insn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_res[1] = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;for (pass = 0; pass &lt; 2; pass&#43;&#43;) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op1, rn, pass, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;read_vec_element(s, tcg_op2, rm, pass, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_xor_i64(tcg_res[pass], tcg_op1, tcg_op2);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_rotri_i64(tcg_res[pass], tcg_res[pass], imm6);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_64);</div>\r\n"
- "<div>- &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[0], rd, 0, MO_UQ);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;write_vec_element(s, tcg_res[1], rd, 1, MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(tcg_op2);</div>\r\n"
- "<div>diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c</div>\r\n"
- "<div>index f7c891d..423c461 100644</div>\r\n"
- "<div>--- a/target/arm/translate-sve.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/arm/translate-sve.c</div>\r\n"
- "<div>@@ -1708,7 &#43;1708,7 @@ static void do_sat_addsub_vec(DisasContext *s, int esz, int rd, int rn,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t64);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (u) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (d) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_sve_uqsubi_d(dptr, nptr, val, desc);</div>\r\n"
- "<div>@@ -1862,7 &#43;1862,7 @@ static bool do_zz_dbm(DisasContext *s, arg_rr_dbm *a, GVecGen2iFn *gvec_fn)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (sve_access_check(s)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unsigned vsz = vec_full_reg_size(s);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;gvec_fn(MO_64, vec_full_reg_offset(s, a-&gt;rd),</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;gvec_fn(MO_UQ, vec_full_reg_offset(s, a-&gt;rd),</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_full_reg_offset(s, a-&gt;rn), imm, vsz, vsz);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;return true;</div>\r\n"
- "<div>@@ -2076,7 &#43;2076,7 @@ static bool trans_INSR_f(DisasContext *s, arg_rrr_esz *a)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (sve_access_check(s)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 t = tcg_temp_new_i64();</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(t, cpu_env, vec_reg_offset(s, a-&gt;rm, 0, MO_64));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(t, cpu_env, vec_reg_offset(s, a-&gt;rm, 0, MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_insr_i64(s, a, t);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -3327,7 &#43;3327,7 @@ static bool trans_SUBR_zzi(DisasContext *s, arg_rri_esz *a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_sve_subri_d,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.scalar_first = true }</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -4571,7 &#43;4571,7 @@ static const TCGMemOp dtype_mop[16] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_UB, MO_UB, MO_UB, MO_UB,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_SL, MO_UW, MO_UW, MO_UW,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_SW, MO_SW, MO_UL, MO_UL,</div>\r\n"
- "<div>- &nbsp; &nbsp;MO_SB, MO_SB, MO_SB, MO_Q</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;MO_SB, MO_SB, MO_SB, MO_UQ</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#define dtype_msz(x) &nbsp;(dtype_mop[x] &amp; MO_SIZE)</div>\r\n"
- "<div>@@ -5261,7 &#43;5261,7 @@ static bool trans_LD1_zprz(DisasContext *s, arg_LD1_zprz *a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn32[be][a-&gt;ff][a-&gt;xs][a-&gt;u][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn64[be][a-&gt;ff][a-&gt;xs][a-&gt;u][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -5289,7 &#43;5289,7 @@ static bool trans_LD1_zpiz(DisasContext *s, arg_LD1_zpiz *a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn32[be][a-&gt;ff][0][a-&gt;u][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = gather_load_fn64[be][a-&gt;ff][2][a-&gt;u][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -5367,7 &#43;5367,7 @@ static bool trans_ST1_zprz(DisasContext *s, arg_ST1_zprz *a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn32[be][a-&gt;xs][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn64[be][a-&gt;xs][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -5395,7 &#43;5395,7 @@ static bool trans_ST1_zpiz(DisasContext *s, arg_ST1_zpiz *a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn32[be][0][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fn = scatter_store_fn64[be][2][a-&gt;msz];</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>diff --git a/target/arm/translate-vfp.inc.c b/target/arm/translate-vfp.inc.c</div>\r\n"
- "<div>index 5e0cd63..d71944d 100644</div>\r\n"
- "<div>--- a/target/arm/translate-vfp.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/arm/translate-vfp.inc.c</div>\r\n"
- "<div>@@ -40,7 &#43;40,7 @@ uint64_t vfp_expand_imm(int size, uint8_t imm8)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;uint64_t imm;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;switch (size) {</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;imm = (extract32(imm8, 7, 1) ? 0x8000 : 0) |</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(extract32(imm8, 6, 1) ? 0x3fc0 : 0x4000) |</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;extract32(imm8, 0, 6);</div>\r\n"
- "<div>@@ -1960,7 &#43;1960,7 @@ static bool trans_VMOV_imm_dp(DisasContext *s, arg_VMOV_imm_dp *a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;fd = tcg_const_i64(vfp_expand_imm(MO_64, a-&gt;imm));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;fd = tcg_const_i64(vfp_expand_imm(MO_UQ, a-&gt;imm));</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;for (;;) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;neon_store_reg64(fd, vd);</div>\r\n"
- "<div>diff --git a/target/arm/translate.c b/target/arm/translate.c</div>\r\n"
- "<div>index 5510ecd..306ef24 100644</div>\r\n"
- "<div>--- a/target/arm/translate.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/arm/translate.c</div>\r\n"
- "<div>@@ -1171,7 &#43;1171,7 @@ static void gen_aa32_ld_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32,</div>\r\n"
- "<div>&nbsp;static inline void gen_aa32_ld64(DisasContext *s, TCGv_i64 val,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TCGv_i32 a32, int index)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;gen_aa32_ld_i64(s, val, a32, index, MO_Q | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;gen_aa32_ld_i64(s, val, a32, index, MO_UQ | s-&gt;be_data);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_aa32_st_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32,</div>\r\n"
- "<div>@@ -1194,7 &#43;1194,7 @@ static void gen_aa32_st_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32,</div>\r\n"
- "<div>&nbsp;static inline void gen_aa32_st64(DisasContext *s, TCGv_i64 val,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TCGv_i32 a32, int index)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;gen_aa32_st_i64(s, val, a32, index, MO_Q | s-&gt;be_data);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;gen_aa32_st_i64(s, val, a32, index, MO_UQ | s-&gt;be_data);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;DO_GEN_LD(8s, MO_SB)</div>\r\n"
- "<div>@@ -1455,7 &#43;1455,7 @@ static void neon_load_element64(TCGv_i64 var, int reg, int ele, TCGMemOp mop)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld32u_i64(var, cpu_env, offset);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(var, cpu_env, offset);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -1502,7 &#43;1502,7 @@ static void neon_store_element64(int reg, int ele, TCGMemOp size, TCGv_i64 var)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st32_i64(var, cpu_env, offset);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st_i64(var, cpu_env, offset);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -4278,7 &#43;4278,7 @@ const GVecGen2i ssra_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_ssra,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_usra8_i64(TCGv_i64 d, TCGv_i64 a, int64_t shift)</div>\r\n"
- "<div>@@ -4336,7 &#43;4336,7 @@ const GVecGen2i usra_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_usra,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64, },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ, },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_shr8_ins_i64(TCGv_i64 d, TCGv_i64 a, int64_t shift)</div>\r\n"
- "<div>@@ -4416,7 &#43;4416,7 @@ const GVecGen2i sri_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sri,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_shl8_ins_i64(TCGv_i64 d, TCGv_i64 a, int64_t shift)</div>\r\n"
- "<div>@@ -4494,7 &#43;4494,7 @@ const GVecGen2i sli_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sli,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_mla8_i32(TCGv_i32 d, TCGv_i32 a, TCGv_i32 b)</div>\r\n"
- "<div>@@ -4590,7 &#43;4590,7 @@ const GVecGen3 mla_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mla,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;const GVecGen3 mls_op[4] = {</div>\r\n"
- "<div>@@ -4614,7 &#43;4614,7 @@ const GVecGen3 mls_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.load_dest = true,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mls,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;/* CMTST : test is &quot;if (X &amp; Y != 0)&quot;. */</div>\r\n"
- "<div>@@ -4658,7 &#43;4658,7 @@ const GVecGen3 cmtst_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.fniv = gen_cmtst_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_cmtst,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_uqadd_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>\r\n"
- "<div>@@ -4696,7 &#43;4696,7 @@ const GVecGen4 uqadd_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_uqadd_d,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_uqadd,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_sqadd_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>\r\n"
- "<div>@@ -4734,7 &#43;4734,7 @@ const GVecGen4 sqadd_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sqadd_d,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sqadd,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_uqsub_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>\r\n"
- "<div>@@ -4772,7 &#43;4772,7 @@ const GVecGen4 uqsub_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_uqsub_d,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_uqsub,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_sqsub_vec(unsigned vece, TCGv_vec t, TCGv_vec sat,</div>\r\n"
- "<div>@@ -4810,7 &#43;4810,7 @@ const GVecGen4 sqsub_op[4] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sqsub_d,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sqsub,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp;.write_aofs = true,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;/* Translate a NEON data processing instruction. &nbsp;Return nonzero if the</div>\r\n"
- "<div>diff --git a/target/i386/translate.c b/target/i386/translate.c</div>\r\n"
- "<div>index 0e863d4..8d62b37 100644</div>\r\n"
- "<div>--- a/target/i386/translate.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/i386/translate.c</div>\r\n"
- "<div>@@ -323,7 &#43;323,7 @@ static inline bool byte_reg_is_xH(DisasContext *s, int reg)</div>\r\n"
- "<div>&nbsp;static inline TCGMemOp mo_pushpop(DisasContext *s, TCGMemOp ot)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (CODE64(s)) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;return ot == MO_UW ? MO_UW : MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;return ot == MO_UW ? MO_UW : MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return ot;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -332,14 &#43;332,14 @@ static inline TCGMemOp mo_pushpop(DisasContext *s, TCGMemOp ot)</div>\r\n"
- "<div>&nbsp;/* Select the size of the stack pointer. &nbsp;*/</div>\r\n"
- "<div>&nbsp;static inline TCGMemOp mo_stacksize(DisasContext *s)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;return CODE64(s) ? MO_64 : s-&gt;ss32 ? MO_UL : MO_UW;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;return CODE64(s) ? MO_UQ : s-&gt;ss32 ? MO_UL : MO_UW;</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;/* Select only size 64 else 32. &nbsp;Used for SSE operand sizes. &nbsp;*/</div>\r\n"
- "<div>&nbsp;static inline TCGMemOp mo_64_32(TCGMemOp ot)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp;return ot == MO_64 ? MO_64 : MO_UL;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;return ot == MO_UQ ? MO_UQ : MO_UL;</div>\r\n"
- "<div>&nbsp;#else</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;return MO_UL;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -378,7 &#43;378,7 @@ static void gen_op_mov_reg_v(DisasContext *s, TCGMemOp ot, int reg, TCGv t0)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(cpu_regs[reg], t0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_regs[reg], t0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -456,7 &#43;456,7 @@ static void gen_lea_v_seg(DisasContext *s, TCGMemOp aflag, TCGv a0,</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;switch (aflag) {</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ovr_seg &lt; 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(s-&gt;A0, a0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>@@ -492,7 &#43;492,7 @@ static void gen_lea_v_seg(DisasContext *s, TCGMemOp aflag, TCGv a0,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (ovr_seg &gt;= 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv seg = cpu_seg_base[ovr_seg];</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (aflag == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (aflag == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_add_tl(s-&gt;A0, a0, seg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (CODE64(s)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;A0, a0);</div>\r\n"
- "<div>@@ -1469,7 &#43;1469,7 @@ static void gen_shift_flags(DisasContext *s, TCGMemOp ot, TCGv result,</div>\r\n"
- "<div>&nbsp;static void gen_shift_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int is_right, int is_arith)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;target_ulong mask = (ot == MO_64 ? 0x3f : 0x1f);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;target_ulong mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* load */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (op1 == OR_TMP0) {</div>\r\n"
- "<div>@@ -1505,7 &#43;1505,7 @@ static void gen_shift_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>\r\n"
- "<div>&nbsp;static void gen_shift_rm_im(DisasContext *s, TCGMemOp ot, int op1, int op2,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int is_right, int is_arith)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;int mask = (ot == MO_64 ? 0x3f : 0x1f);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;int mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* load */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (op1 == OR_TMP0)</div>\r\n"
- "<div>@@ -1544,7 &#43;1544,7 @@ static void gen_shift_rm_im(DisasContext *s, TCGMemOp ot, int op1, int op2,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void gen_rot_rm_T1(DisasContext *s, TCGMemOp ot, int op1, int is_right)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;target_ulong mask = (ot == MO_64 ? 0x3f : 0x1f);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;target_ulong mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i32 t0, t1;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* load */</div>\r\n"
- "<div>@@ -1630,7 &#43;1630,7 @@ static void gen_rot_rm_T1(DisasContext *s, TCGMemOp ot, int op1, int is_right)</div>\r\n"
- "<div>&nbsp;static void gen_rot_rm_im(DisasContext *s, TCGMemOp ot, int op1, int op2,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int is_right)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;int mask = (ot == MO_64 ? 0x3f : 0x1f);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;int mask = (ot == MO_UQ ? 0x3f : 0x1f);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;int shift;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* load */</div>\r\n"
- "<div>@@ -1729,7 &#43;1729,7 @@ static void gen_rotc_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rcrl(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rcrq(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -1748,7 &#43;1748,7 @@ static void gen_rotc_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rcll(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_rclq(s-&gt;T0, cpu_env, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -1764,7 &#43;1764,7 @@ static void gen_rotc_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>\r\n"
- "<div>&nbsp;static void gen_shiftd_rm_T1(DisasContext *s, TCGMemOp ot, int op1,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bool is_right, TCGv count_in)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;target_ulong mask = (ot == MO_64 ? 63 : 31);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;target_ulong mask = (ot == MO_UQ ? 63 : 31);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv count;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* load */</div>\r\n"
- "<div>@@ -1983,7 &#43;1983,7 @@ static AddressParts gen_lea_modrm_0(CPUX86State *env, DisasContext *s,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;switch (s-&gt;aflag) {</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;havesib = 0;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (rm == 4) {</div>\r\n"
- "<div>@@ -2192,7 &#43;2192,7 @@ static inline uint32_t insn_get(CPUX86State *env, DisasContext *s, TCGMemOp ot)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ret = x86_ldl_code(env, s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>@@ -2443,7 &#43;2443,7 @@ static void gen_popa(DisasContext *s)</div>\r\n"
- "<div>&nbsp;static void gen_enter(DisasContext *s, int esp_addend, int level)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGMemOp d_ot = mo_pushpop(s, s-&gt;dflag);</div>\r\n"
- "<div>- &nbsp; &nbsp;TCGMemOp a_ot = CODE64(s) ? MO_64 : s-&gt;ss32 ? MO_UL : MO_UW;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;TCGMemOp a_ot = CODE64(s) ? MO_UQ : s-&gt;ss32 ? MO_UL : MO_UW;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;int size = 1 &lt;&lt; d_ot;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* Push BP; compute FrameTemp into T1. &nbsp;*/</div>\r\n"
- "<div>@@ -3150,8 &#43;3150,8 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x6e: /* movd mm, ea */</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_st_tl(s-&gt;T0, cpu_env,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;offsetof(CPUX86State, fpregs[reg].mmx));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>\r\n"
- "<div>@@ -3166,8 &#43;3166,8 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x16e: /* movd xmm, ea */</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_addi_ptr(s-&gt;ptr0, cpu_env,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offsetof(CPUX86State,xmm_regs[reg]));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_movq_mm_T0_xmm(s-&gt;ptr0, s-&gt;T0);</div>\r\n"
- "<div>@@ -3337,10 &#43;3337,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x7e: /* movd ea, mm */</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(s-&gt;T0, cpu_env,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offsetof(CPUX86State,fpregs[reg].mmx));</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 1);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>@@ -3351,10 &#43;3351,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 0x17e: /* movd ea, xmm */</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(s-&gt;T0, cpu_env,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offsetof(CPUX86State,xmm_regs[reg].ZMM_Q(0)));</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_64, OR_TMP0, 1);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, MO_UQ, OR_TMP0, 1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>@@ -3785,10 &#43;3785,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((b &amp; 0xff) == 0xf0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UB;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (s-&gt;dflag != MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (s-&gt;dflag != MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = (s-&gt;prefix &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_trunc_tl_i32(s-&gt;tmp2_i32, cpu_regs[reg]);</div>\r\n"
- "<div>@@ -3814,10 &#43;3814,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!(s-&gt;cpuid_ext_features &amp; CPUID_EXT_MOVBE)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto illegal_op;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag != MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag != MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = (s-&gt;prefix &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_lea_modrm(env, s, modrm);</div>\r\n"
- "<div>@@ -3861,7 &#43;3861,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext8u_tl(s-&gt;A0, cpu_regs[s-&gt;vex_v]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shr_tl(s-&gt;T0, s-&gt;T0, s-&gt;A0);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bound = tcg_const_tl(ot == MO_64 ? 63 : 31);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bound = tcg_const_tl(ot == MO_UQ ? 63 : 31);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;zero = tcg_const_tl(0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movcond_tl(TCG_COND_LEU, s-&gt;T0, s-&gt;A0, bound,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s-&gt;T0, zero);</div>\r\n"
- "<div>@@ -3894,7 &#43;3894,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext8u_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv bound = tcg_const_tl(ot == MO_64 ? 63 : 31);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv bound = tcg_const_tl(ot == MO_UQ ? 63 : 31);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Note that since we're using BMILG (in order to get O</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cleared) we need to store the inverse into C. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_setcond_tl(TCG_COND_LT, cpu_cc_src,</div>\r\n"
- "<div>@@ -3929,7 &#43;3929,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_tl(cpu_regs[reg], s-&gt;tmp3_i32);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mulu2_i64(s-&gt;T0, s-&gt;T1,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;T0, cpu_regs[R_EDX]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_i64(cpu_regs[s-&gt;vex_v], s-&gt;T0);</div>\r\n"
- "<div>@@ -3949,7 &#43;3949,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Note that by zero-extending the mask operand, we</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; automatically handle zero-extending the result. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>\r\n"
- "<div>@@ -3967,7 &#43;3967,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Note that by zero-extending the mask operand, we</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; automatically handle zero-extending the result. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v]);</div>\r\n"
- "<div>@@ -4063,7 &#43;4063,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = mo_64_32(s-&gt;dflag);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_andi_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v], 63);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_andi_tl(s-&gt;T1, cpu_regs[s-&gt;vex_v], 31);</div>\r\n"
- "<div>@@ -4071,12 &#43;4071,12 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (b == 0x1f7) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shl_tl(s-&gt;T0, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (b == 0x2f7) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_tl(s-&gt;T0, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sar_tl(s-&gt;T0, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot != MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(s-&gt;T0, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shr_tl(s-&gt;T0, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>@@ -4302,7 &#43;4302,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((b &amp; 0xfc) == 0x60) { /* pcmpXstrX */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_cc_op(s, CC_OP_EFLAGS);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;dflag == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The helper must use entire 64-bit gp registers */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;val |= 1 &lt;&lt; 8;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -4329,7 &#43;4329,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = mo_64_32(s-&gt;dflag);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;b = x86_ldub_code(env, s);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ot == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_rotri_tl(s-&gt;T0, s-&gt;T0, b &amp; 63);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_trunc_tl_i32(s-&gt;tmp2_i32, s-&gt;T0);</div>\r\n"
- "<div>@@ -4630,9 &#43;4630,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* In 64-bit mode, the default data size is 32-bit. &nbsp;Select 64-bit</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data with rex_w, and 16-bit data with 0x66; rex_w takes precedence</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; over 0x66 if both are present. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;dflag = (rex_w &gt; 0 ? MO_64 : prefixes &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;dflag = (rex_w &gt; 0 ? MO_UQ : prefixes &amp; PREFIX_DATA ? MO_UW : MO_UL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* In 64-bit mode, 0x67 selects 32-bit addressing. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;aflag = (prefixes &amp; PREFIX_ADR ? MO_UL : MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;aflag = (prefixes &amp; PREFIX_ADR ? MO_UL : MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* In 16/32-bit mode, 0x66 selects the opposite data size. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (s-&gt;code32 ^ ((prefixes &amp; PREFIX_DATA) != 0)) {</div>\r\n"
- "<div>@@ -4903,7 &#43;4903,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_cc_op(s, CC_OP_MULL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mulu2_i64(cpu_regs[R_EAX], cpu_regs[R_EDX],</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;T0, cpu_regs[R_EAX]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_cc_dst, cpu_regs[R_EAX]);</div>\r\n"
- "<div>@@ -4956,7 &#43;4956,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;set_cc_op(s, CC_OP_MULL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_muls2_i64(cpu_regs[R_EAX], cpu_regs[R_EDX],</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s-&gt;T0, cpu_regs[R_EAX]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_cc_dst, cpu_regs[R_EAX]);</div>\r\n"
- "<div>@@ -4980,7 &#43;4980,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_divl_EAX(cpu_env, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_divq_EAX(cpu_env, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -4999,7 &#43;4999,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_idivl_EAX(cpu_env, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_idivq_EAX(cpu_env, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -5024,7 &#43;5024,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CODE64(s)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (op == 2 || op == 4) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* operand size for jumps is 64 bit */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (op == 3 || op == 5) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = dflag != MO_UW ? MO_UL &#43; (rex_w == 1) : MO_UW;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (op == 6) {</div>\r\n"
- "<div>@@ -5145,10 &#43;5145,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 0x98: /* CWDE/CBW */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (dflag) {</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UL, s-&gt;T0, R_EAX);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_tl(s-&gt;T0, s-&gt;T0);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, R_EAX, s-&gt;T0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, R_EAX, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>@@ -5168,10 &#43;5168,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 0x99: /* CDQ/CWD */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (dflag) {</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_64, s-&gt;T0, R_EAX);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UQ, s-&gt;T0, R_EAX);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_tl(s-&gt;T0, s-&gt;T0, 63);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, R_EDX, s-&gt;T0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, R_EDX, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>@@ -5212,7 &#43;5212,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (ot) {</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_muls2_i64(cpu_regs[reg], s-&gt;T1, s-&gt;T0, s-&gt;T1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(cpu_cc_dst, cpu_regs[reg]);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_tl(cpu_cc_src, cpu_cc_dst, 63);</div>\r\n"
- "<div>@@ -5338,7 &#43;5338,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto illegal_op;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!(s-&gt;cpuid_ext_features &amp; CPUID_EXT_CX16)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto illegal_op;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -5636,7 &#43;5636,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = mo_b_d(b, dflag);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (s-&gt;aflag) {</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;offset_addr = x86_ldq_code(env, s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -5671,13 &#43;5671,13 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 0xb8 ... 0xbf: /* mov R, Iv */</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint64_t tmp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 64 bit case */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmp = x86_ldq_code(env, s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = (b &amp; 7) | REX_B(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_tl(s-&gt;T0, tmp);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, reg, s-&gt;T0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, reg, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>@@ -7119,10 &#43;7119,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 0x1c8 ... 0x1cf: /* bswap reg */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = (b &amp; 7) | REX_B(s);</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_X86_64</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_64) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_64, s-&gt;T0, reg);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (dflag == MO_UQ) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UQ, s-&gt;T0, reg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(s-&gt;T0, s-&gt;T0);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_64, reg, s-&gt;T0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, MO_UQ, reg, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>@@ -7700,7 &#43;7700,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (mod == 3) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_v_reg(s, MO_UL, s-&gt;T0, rm);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* sign extend */</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (d_ot == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (d_ot == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_tl(s-&gt;T0, s-&gt;T0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_op_mov_reg_v(s, d_ot, reg, s-&gt;T0);</div>\r\n"
- "<div>@@ -8014,7 &#43;8014,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm = (modrm &amp; 7) | REX_B(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = ((modrm &gt;&gt; 3) &amp; 7) | rex_r;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CODE64(s))</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UL;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((prefixes &amp; PREFIX_LOCK) &amp;&amp; (reg == 0) &amp;&amp;</div>\r\n"
- "<div>@@ -8071,7 &#43;8071,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm = (modrm &amp; 7) | REX_B(s);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;reg = ((modrm &gt;&gt; 3) &amp; 7) | rex_r;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (CODE64(s))</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UQ;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ot = MO_UL;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (reg &gt;= 8) {</div>\r\n"
- "<div>diff --git a/target/mips/translate.c b/target/mips/translate.c</div>\r\n"
- "<div>index 525c7fe..1023f68 100644</div>\r\n"
- "<div>--- a/target/mips/translate.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/mips/translate.c</div>\r\n"
- "<div>@@ -3766,7 &#43;3766,7 @@ static void gen_scwp(DisasContext *ctx, uint32_t base, int16_t offset,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_ld_i64(llval, cpu_env, offsetof(CPUMIPSState, llval_wp));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_atomic_cmpxchg_i64(val, taddr, llval, tval,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eva ? MIPS_HFLAG_UM : ctx-&gt;mem_idx, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eva ? MIPS_HFLAG_UM : ctx-&gt;mem_idx, MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (reg1 != 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_movi_tl(cpu_gpr[reg1], 1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>diff --git a/target/ppc/translate.c b/target/ppc/translate.c</div>\r\n"
- "<div>index 4a5de28..f39dd94 100644</div>\r\n"
- "<div>--- a/target/ppc/translate.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/ppc/translate.c</div>\r\n"
- "<div>@@ -2470,10 &#43;2470,10 @@ GEN_QEMU_LOAD_64(ld8u, &nbsp;DEF_MEMOP(MO_UB))</div>\r\n"
- "<div>&nbsp;GEN_QEMU_LOAD_64(ld16u, DEF_MEMOP(MO_UW))</div>\r\n"
- "<div>&nbsp;GEN_QEMU_LOAD_64(ld32u, DEF_MEMOP(MO_UL))</div>\r\n"
- "<div>&nbsp;GEN_QEMU_LOAD_64(ld32s, DEF_MEMOP(MO_SL))</div>\r\n"
- "<div>-GEN_QEMU_LOAD_64(ld64, &nbsp;DEF_MEMOP(MO_Q))</div>\r\n"
- "<div>&#43;GEN_QEMU_LOAD_64(ld64, &nbsp;DEF_MEMOP(MO_UQ))</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>-GEN_QEMU_LOAD_64(ld64ur, BSWAP_MEMOP(MO_Q))</div>\r\n"
- "<div>&#43;GEN_QEMU_LOAD_64(ld64ur, BSWAP_MEMOP(MO_UQ))</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#define GEN_QEMU_STORE_TL(stop, op) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>@@ -2502,10 &#43;2502,10 @@ static void glue(gen_qemu_, glue(stop, _i64))(DisasContext *ctx, &nbsp;\\</div>\r\n"
- "<div>&nbsp;GEN_QEMU_STORE_64(st8, &nbsp;DEF_MEMOP(MO_UB))</div>\r\n"
- "<div>&nbsp;GEN_QEMU_STORE_64(st16, DEF_MEMOP(MO_UW))</div>\r\n"
- "<div>&nbsp;GEN_QEMU_STORE_64(st32, DEF_MEMOP(MO_UL))</div>\r\n"
- "<div>-GEN_QEMU_STORE_64(st64, DEF_MEMOP(MO_Q))</div>\r\n"
- "<div>&#43;GEN_QEMU_STORE_64(st64, DEF_MEMOP(MO_UQ))</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>-GEN_QEMU_STORE_64(st64r, BSWAP_MEMOP(MO_Q))</div>\r\n"
- "<div>&#43;GEN_QEMU_STORE_64(st64r, BSWAP_MEMOP(MO_UQ))</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#define GEN_LD(name, ldop, opc, type) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>@@ -2605,7 &#43;2605,7 @@ GEN_LDEPX(lb, DEF_MEMOP(MO_UB), 0x1F, 0x02)</div>\r\n"
- "<div>&nbsp;GEN_LDEPX(lh, DEF_MEMOP(MO_UW), 0x1F, 0x08)</div>\r\n"
- "<div>&nbsp;GEN_LDEPX(lw, DEF_MEMOP(MO_UL), 0x1F, 0x00)</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>-GEN_LDEPX(ld, DEF_MEMOP(MO_Q), 0x1D, 0x00)</div>\r\n"
- "<div>&#43;GEN_LDEPX(ld, DEF_MEMOP(MO_UQ), 0x1D, 0x00)</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>@@ -2808,7 &#43;2808,7 @@ GEN_STEPX(stb, DEF_MEMOP(MO_UB), 0x1F, 0x06)</div>\r\n"
- "<div>&nbsp;GEN_STEPX(sth, DEF_MEMOP(MO_UW), 0x1F, 0x0C)</div>\r\n"
- "<div>&nbsp;GEN_STEPX(stw, DEF_MEMOP(MO_UL), 0x1F, 0x04)</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>-GEN_STEPX(std, DEF_MEMOP(MO_Q), 0x1d, 0x04)</div>\r\n"
- "<div>&#43;GEN_STEPX(std, DEF_MEMOP(MO_UQ), 0x1d, 0x04)</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>@@ -3244,7 &#43;3244,7 @@ static void gen_ld_atomic(DisasContext *ctx, TCGMemOp memop)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv t1 = tcg_temp_new();</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_tl(t0, EA, ctx-&gt;mem_idx, memop);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_64 || TARGET_LONG_BITS == 32) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_UQ || TARGET_LONG_BITS == 32) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_tl(t1, src);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_tl(t1, src);</div>\r\n"
- "<div>@@ -3302,7 &#43;3302,7 @@ static void gen_lwat(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_PPC64</div>\r\n"
- "<div>&nbsp;static void gen_ldat(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;gen_ld_atomic(ctx, DEF_MEMOP(MO_Q));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;gen_ld_atomic(ctx, DEF_MEMOP(MO_UQ));</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -3385,7 &#43;3385,7 @@ static void gen_stwat(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp;#ifdef TARGET_PPC64</div>\r\n"
- "<div>&nbsp;static void gen_stdat(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>- &nbsp; &nbsp;gen_st_atomic(ctx, DEF_MEMOP(MO_Q));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;gen_st_atomic(ctx, DEF_MEMOP(MO_UQ));</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -3437,9 &#43;3437,9 @@ STCX(stwcx_, DEF_MEMOP(MO_UL))</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>&nbsp;/* ldarx */</div>\r\n"
- "<div>-LARX(ldarx, DEF_MEMOP(MO_Q))</div>\r\n"
- "<div>&#43;LARX(ldarx, DEF_MEMOP(MO_UQ))</div>\r\n"
- "<div>&nbsp;/* stdcx. */</div>\r\n"
- "<div>-STCX(stdcx_, DEF_MEMOP(MO_Q))</div>\r\n"
- "<div>&#43;STCX(stdcx_, DEF_MEMOP(MO_UQ))</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;/* lqarx */</div>\r\n"
- "<div>&nbsp;static void gen_lqarx(DisasContext *ctx)</div>\r\n"
- "<div>@@ -3520,7 &#43;3520,7 @@ static void gen_stqcx_(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (tb_cflags(ctx-&gt;base.tb) &amp; CF_PARALLEL) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (HAVE_CMPXCHG128) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 oi = tcg_const_i32(DEF_MEMOP(MO_Q) | MO_ALIGN_16);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 oi = tcg_const_i32(DEF_MEMOP(MO_UQ) | MO_ALIGN_16);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (ctx-&gt;le_mode) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_stqcx_le_parallel(cpu_crf[0], cpu_env,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EA, lo, hi, oi);</div>\r\n"
- "<div>@@ -7366,7 &#43;7366,7 @@ GEN_LDEPX(lb, DEF_MEMOP(MO_UB), 0x1F, 0x02)</div>\r\n"
- "<div>&nbsp;GEN_LDEPX(lh, DEF_MEMOP(MO_UW), 0x1F, 0x08)</div>\r\n"
- "<div>&nbsp;GEN_LDEPX(lw, DEF_MEMOP(MO_UL), 0x1F, 0x00)</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>-GEN_LDEPX(ld, DEF_MEMOP(MO_Q), 0x1D, 0x00)</div>\r\n"
- "<div>&#43;GEN_LDEPX(ld, DEF_MEMOP(MO_UQ), 0x1D, 0x00)</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#undef GEN_ST</div>\r\n"
- "<div>@@ -7412,7 &#43;7412,7 @@ GEN_STEPX(stb, DEF_MEMOP(MO_UB), 0x1F, 0x06)</div>\r\n"
- "<div>&nbsp;GEN_STEPX(sth, DEF_MEMOP(MO_UW), 0x1F, 0x0C)</div>\r\n"
- "<div>&nbsp;GEN_STEPX(stw, DEF_MEMOP(MO_UL), 0x1F, 0x04)</div>\r\n"
- "<div>&nbsp;#if defined(TARGET_PPC64)</div>\r\n"
- "<div>-GEN_STEPX(std, DEF_MEMOP(MO_Q), 0x1D, 0x04)</div>\r\n"
- "<div>&#43;GEN_STEPX(std, DEF_MEMOP(MO_UQ), 0x1D, 0x04)</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#undef GEN_CRLOGIC</div>\r\n"
- "<div>diff --git a/target/ppc/translate/fp-impl.inc.c b/target/ppc/translate/fp-impl.inc.c</div>\r\n"
- "<div>index 9dcff94..3fd54ac 100644</div>\r\n"
- "<div>--- a/target/ppc/translate/fp-impl.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/ppc/translate/fp-impl.inc.c</div>\r\n"
- "<div>@@ -855,7 &#43;855,7 @@ static void gen_lfdepx(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;EA = tcg_temp_new();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;t0 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;gen_addr_reg_index(ctx, EA);</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_gen_qemu_ld_i64(t0, EA, PPC_TLB_EPID_LOAD, DEF_MEMOP(MO_Q));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_gen_qemu_ld_i64(t0, EA, PPC_TLB_EPID_LOAD, DEF_MEMOP(MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;set_fpr(rD(ctx-&gt;opcode), t0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free(EA);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t0);</div>\r\n"
- "<div>@@ -1091,7 &#43;1091,7 @@ static void gen_stfdepx(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;t0 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;gen_addr_reg_index(ctx, EA);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;get_fpr(t0, rD(ctx-&gt;opcode));</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_gen_qemu_st_i64(t0, EA, PPC_TLB_EPID_STORE, DEF_MEMOP(MO_Q));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_gen_qemu_st_i64(t0, EA, PPC_TLB_EPID_STORE, DEF_MEMOP(MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free(EA);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t0);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>diff --git a/target/ppc/translate/vmx-impl.inc.c b/target/ppc/translate/vmx-impl.inc.c</div>\r\n"
- "<div>index 8aa767e..867dc52 100644</div>\r\n"
- "<div>--- a/target/ppc/translate/vmx-impl.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/ppc/translate/vmx-impl.inc.c</div>\r\n"
- "<div>@@ -290,14 &#43;290,14 @@ static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;/* Logical operations */</div>\r\n"
- "<div>-GEN_VXFORM_V(vand, MO_64, tcg_gen_gvec_and, 2, 16);</div>\r\n"
- "<div>-GEN_VXFORM_V(vandc, MO_64, tcg_gen_gvec_andc, 2, 17);</div>\r\n"
- "<div>-GEN_VXFORM_V(vor, MO_64, tcg_gen_gvec_or, 2, 18);</div>\r\n"
- "<div>-GEN_VXFORM_V(vxor, MO_64, tcg_gen_gvec_xor, 2, 19);</div>\r\n"
- "<div>-GEN_VXFORM_V(vnor, MO_64, tcg_gen_gvec_nor, 2, 20);</div>\r\n"
- "<div>-GEN_VXFORM_V(veqv, MO_64, tcg_gen_gvec_eqv, 2, 26);</div>\r\n"
- "<div>-GEN_VXFORM_V(vnand, MO_64, tcg_gen_gvec_nand, 2, 22);</div>\r\n"
- "<div>-GEN_VXFORM_V(vorc, MO_64, tcg_gen_gvec_orc, 2, 21);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vand, MO_UQ, tcg_gen_gvec_and, 2, 16);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vandc, MO_UQ, tcg_gen_gvec_andc, 2, 17);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vor, MO_UQ, tcg_gen_gvec_or, 2, 18);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vxor, MO_UQ, tcg_gen_gvec_xor, 2, 19);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vnor, MO_UQ, tcg_gen_gvec_nor, 2, 20);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(veqv, MO_UQ, tcg_gen_gvec_eqv, 2, 26);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vnand, MO_UQ, tcg_gen_gvec_nand, 2, 22);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vorc, MO_UQ, tcg_gen_gvec_orc, 2, 21);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#define GEN_VXFORM(name, opc2, opc3) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\\</div>\r\n"
- "<div>&nbsp;static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>@@ -410,27 &#43;410,27 @@ GEN_VXFORM_V(vadduhm, MO_UW, tcg_gen_gvec_add, 0, 1);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_DUAL(vadduhm, PPC_ALTIVEC, PPC_NONE, &nbsp;\\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vmul10ecuq, PPC_NONE, PPC2_ISA300)</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vadduwm, MO_UL, tcg_gen_gvec_add, 0, 2);</div>\r\n"
- "<div>-GEN_VXFORM_V(vaddudm, MO_64, tcg_gen_gvec_add, 0, 3);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vaddudm, MO_UQ, tcg_gen_gvec_add, 0, 3);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsububm, MO_UB, tcg_gen_gvec_sub, 0, 16);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsubuhm, MO_UW, tcg_gen_gvec_sub, 0, 17);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsubuwm, MO_UL, tcg_gen_gvec_sub, 0, 18);</div>\r\n"
- "<div>-GEN_VXFORM_V(vsubudm, MO_64, tcg_gen_gvec_sub, 0, 19);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vsubudm, MO_UQ, tcg_gen_gvec_sub, 0, 19);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vmaxub, MO_UB, tcg_gen_gvec_umax, 1, 0);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vmaxuh, MO_UW, tcg_gen_gvec_umax, 1, 1);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vmaxuw, MO_UL, tcg_gen_gvec_umax, 1, 2);</div>\r\n"
- "<div>-GEN_VXFORM_V(vmaxud, MO_64, tcg_gen_gvec_umax, 1, 3);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vmaxud, MO_UQ, tcg_gen_gvec_umax, 1, 3);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vmaxsb, MO_UB, tcg_gen_gvec_smax, 1, 4);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vmaxsh, MO_UW, tcg_gen_gvec_smax, 1, 5);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vmaxsw, MO_UL, tcg_gen_gvec_smax, 1, 6);</div>\r\n"
- "<div>-GEN_VXFORM_V(vmaxsd, MO_64, tcg_gen_gvec_smax, 1, 7);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vmaxsd, MO_UQ, tcg_gen_gvec_smax, 1, 7);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vminub, MO_UB, tcg_gen_gvec_umin, 1, 8);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vminuh, MO_UW, tcg_gen_gvec_umin, 1, 9);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vminuw, MO_UL, tcg_gen_gvec_umin, 1, 10);</div>\r\n"
- "<div>-GEN_VXFORM_V(vminud, MO_64, tcg_gen_gvec_umin, 1, 11);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vminud, MO_UQ, tcg_gen_gvec_umin, 1, 11);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vminsb, MO_UB, tcg_gen_gvec_smin, 1, 12);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vminsh, MO_UW, tcg_gen_gvec_smin, 1, 13);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vminsw, MO_UL, tcg_gen_gvec_smin, 1, 14);</div>\r\n"
- "<div>-GEN_VXFORM_V(vminsd, MO_64, tcg_gen_gvec_smin, 1, 15);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vminsd, MO_UQ, tcg_gen_gvec_smin, 1, 15);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM(vavgub, 1, 16);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM(vabsdub, 1, 16);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_DUAL(vavgub, PPC_ALTIVEC, PPC_NONE, \\</div>\r\n"
- "<div>@@ -536,15 &#43;536,15 @@ GEN_VXFORM_V(vslw, MO_UL, tcg_gen_gvec_shlv, 2, 6);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM(vrlwnm, 2, 6);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_DUAL(vslw, PPC_ALTIVEC, PPC_NONE, \\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vrlwnm, PPC_NONE, PPC2_ISA300)</div>\r\n"
- "<div>-GEN_VXFORM_V(vsld, MO_64, tcg_gen_gvec_shlv, 2, 23);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vsld, MO_UQ, tcg_gen_gvec_shlv, 2, 23);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsrb, MO_UB, tcg_gen_gvec_shrv, 2, 8);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsrh, MO_UW, tcg_gen_gvec_shrv, 2, 9);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsrw, MO_UL, tcg_gen_gvec_shrv, 2, 10);</div>\r\n"
- "<div>-GEN_VXFORM_V(vsrd, MO_64, tcg_gen_gvec_shrv, 2, 27);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vsrd, MO_UQ, tcg_gen_gvec_shrv, 2, 27);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsrab, MO_UB, tcg_gen_gvec_sarv, 2, 12);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsrah, MO_UW, tcg_gen_gvec_sarv, 2, 13);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM_V(vsraw, MO_UL, tcg_gen_gvec_sarv, 2, 14);</div>\r\n"
- "<div>-GEN_VXFORM_V(vsrad, MO_64, tcg_gen_gvec_sarv, 2, 15);</div>\r\n"
- "<div>&#43;GEN_VXFORM_V(vsrad, MO_UQ, tcg_gen_gvec_sarv, 2, 15);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM(vsrv, 2, 28);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM(vslv, 2, 29);</div>\r\n"
- "<div>&nbsp;GEN_VXFORM(vslo, 6, 16);</div>\r\n"
- "<div>diff --git a/target/ppc/translate/vsx-impl.inc.c b/target/ppc/translate/vsx-impl.inc.c</div>\r\n"
- "<div>index 212817e..d607974 100644</div>\r\n"
- "<div>--- a/target/ppc/translate/vsx-impl.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/ppc/translate/vsx-impl.inc.c</div>\r\n"
- "<div>@@ -1475,14 &#43;1475,14 @@ static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vsr_full_offset(xB(ctx-&gt;opcode)), 16, 16); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>-VSX_LOGICAL(xxland, MO_64, tcg_gen_gvec_and)</div>\r\n"
- "<div>-VSX_LOGICAL(xxlandc, MO_64, tcg_gen_gvec_andc)</div>\r\n"
- "<div>-VSX_LOGICAL(xxlor, MO_64, tcg_gen_gvec_or)</div>\r\n"
- "<div>-VSX_LOGICAL(xxlxor, MO_64, tcg_gen_gvec_xor)</div>\r\n"
- "<div>-VSX_LOGICAL(xxlnor, MO_64, tcg_gen_gvec_nor)</div>\r\n"
- "<div>-VSX_LOGICAL(xxleqv, MO_64, tcg_gen_gvec_eqv)</div>\r\n"
- "<div>-VSX_LOGICAL(xxlnand, MO_64, tcg_gen_gvec_nand)</div>\r\n"
- "<div>-VSX_LOGICAL(xxlorc, MO_64, tcg_gen_gvec_orc)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxland, MO_UQ, tcg_gen_gvec_and)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxlandc, MO_UQ, tcg_gen_gvec_andc)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxlor, MO_UQ, tcg_gen_gvec_or)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxlxor, MO_UQ, tcg_gen_gvec_xor)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxlnor, MO_UQ, tcg_gen_gvec_nor)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxleqv, MO_UQ, tcg_gen_gvec_eqv)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxlnand, MO_UQ, tcg_gen_gvec_nand)</div>\r\n"
- "<div>&#43;VSX_LOGICAL(xxlorc, MO_UQ, tcg_gen_gvec_orc)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;#define VSX_XXMRG(name, high) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>&nbsp;static void glue(gen_, name)(DisasContext *ctx) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>@@ -1535,7 &#43;1535,7 @@ static void gen_xxsel(DisasContext *ctx)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_exception(ctx, POWERPC_EXCP_VSXU);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_gen_gvec_bitsel(MO_64, vsr_full_offset(rt), vsr_full_offset(rc),</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_gen_gvec_bitsel(MO_UQ, vsr_full_offset(rt), vsr_full_offset(rc),</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vsr_full_offset(rb), vsr_full_offset(ra), 16, 16);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>diff --git a/target/s390x/translate.c b/target/s390x/translate.c</div>\r\n"
- "<div>index 9e646f1..5c72db1 100644</div>\r\n"
- "<div>--- a/target/s390x/translate.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/s390x/translate.c</div>\r\n"
- "<div>@@ -180,7 &#43;180,7 @@ static inline int vec_reg_offset(uint8_t reg, uint8_t enr, TCGMemOp es)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; * the two 8 byte elements have to be loaded separately. Let's force all</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; * 16 byte operations to handle it in a special way.</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>- &nbsp; &nbsp;g_assert(es &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;g_assert(es &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp;#ifndef HOST_WORDS_BIGENDIAN</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;offs ^= (8 - bytes);</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -190,7 &#43;190,7 @@ static inline int vec_reg_offset(uint8_t reg, uint8_t enr, TCGMemOp es)</div>\r\n"
- "<div>&nbsp;static inline int freg64_offset(uint8_t reg)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;g_assert(reg &lt; 16);</div>\r\n"
- "<div>- &nbsp; &nbsp;return vec_reg_offset(reg, 0, MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;return vec_reg_offset(reg, 0, MO_UQ);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static inline int freg32_offset(uint8_t reg)</div>\r\n"
- "<div>diff --git a/target/s390x/translate_vx.inc.c b/target/s390x/translate_vx.inc.c</div>\r\n"
- "<div>index 75d788c..6252262 100644</div>\r\n"
- "<div>--- a/target/s390x/translate_vx.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/s390x/translate_vx.inc.c</div>\r\n"
- "<div>@@ -30,8 &#43;30,8 @@</div>\r\n"
- "<div>&nbsp; * Sizes:</div>\r\n"
- "<div>&nbsp; * &nbsp;On s390x, the operand size (oprsz) and the maximum size (maxsz) are</div>\r\n"
- "<div>&nbsp; * &nbsp;always 16 (128 bit). What gvec code calls &quot;vece&quot;, s390x calls &quot;es&quot;,</div>\r\n"
- "<div>- * &nbsp;a.k.a. &quot;element size&quot;. These values nicely map to MO_UB ... MO_64. Only</div>\r\n"
- "<div>- * &nbsp;128 bit element size has to be treated in a special way (MO_64 &#43; 1).</div>\r\n"
- "<div>&#43; * &nbsp;a.k.a. &quot;element size&quot;. These values nicely map to MO_UB ... MO_UQ. Only</div>\r\n"
- "<div>&#43; * &nbsp;128 bit element size has to be treated in a special way (MO_UQ &#43; 1).</div>\r\n"
- "<div>&nbsp; * &nbsp;We will use ES_* instead of MO_* for this reason in this file.</div>\r\n"
- "<div>&nbsp; *</div>\r\n"
- "<div>&nbsp; * CC handling:</div>\r\n"
- "<div>@@ -49,7 &#43;49,7 @@</div>\r\n"
- "<div>&nbsp;#define ES_8 &nbsp; &nbsp;MO_UB</div>\r\n"
- "<div>&nbsp;#define ES_16 &nbsp; MO_UW</div>\r\n"
- "<div>&nbsp;#define ES_32 &nbsp; MO_UL</div>\r\n"
- "<div>-#define ES_64 &nbsp; MO_64</div>\r\n"
- "<div>&#43;#define ES_64 &nbsp; MO_UQ</div>\r\n"
- "<div>&nbsp;#define ES_128 &nbsp;4</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;/* Floating-Point Format */</div>\r\n"
- "<div>diff --git a/target/s390x/vec.h b/target/s390x/vec.h</div>\r\n"
- "<div>index f67392c..b59da65 100644</div>\r\n"
- "<div>--- a/target/s390x/vec.h</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/s390x/vec.h</div>\r\n"
- "<div>@@ -82,7 &#43;82,7 @@ static inline uint64_t s390_vec_read_element(const S390Vector *v, uint8_t enr,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return s390_vec_read_element16(v, enr);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return s390_vec_read_element32(v, enr);</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return s390_vec_read_element64(v, enr);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>\r\n"
- "<div>@@ -130,7 &#43;130,7 @@ static inline void s390_vec_write_element(S390Vector *v, uint8_t enr,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s390_vec_write_element32(v, enr, data);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s390_vec_write_element64(v, enr, data);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>diff --git a/target/sparc/translate.c b/target/sparc/translate.c</div>\r\n"
- "<div>index 091bab5..499622b 100644</div>\r\n"
- "<div>--- a/target/sparc/translate.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/target/sparc/translate.c</div>\r\n"
- "<div>@@ -2840,7 &#43;2840,7 @@ static void gen_ldda_asi(DisasContext *dc, TCGv addr, int insn, int rd)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_asi = tcg_const_i32(da.asi);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_Q);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;save_state(dc);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_ld_asi(t64, cpu_env, addr, r_asi, r_mop);</div>\r\n"
- "<div>@@ -2896,7 &#43;2896,7 @@ static void gen_stda_asi(DisasContext *dc, TCGv hi, TCGv addr,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_asi = tcg_const_i32(da.asi);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_Q);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i32 r_mop = tcg_const_i32(MO_UQ);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;save_state(dc);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_st_asi(cpu_env, addr, t64, r_asi, r_mop);</div>\r\n"
- "<div>diff --git a/tcg/aarch64/tcg-target.inc.c b/tcg/aarch64/tcg-target.inc.c</div>\r\n"
- "<div>index dc4fd21..d14afa9 100644</div>\r\n"
- "<div>--- a/tcg/aarch64/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/aarch64/tcg-target.inc.c</div>\r\n"
- "<div>@@ -432,12 &#43;432,12 @@ typedef enum {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_STRB &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UB &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_STRH &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UW &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_STRW &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>\r\n"
- "<div>- &nbsp; &nbsp;I3312_STRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;I3312_STRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_ST &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_LDRB &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UB &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_LDRH &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UW &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_LDRW &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>\r\n"
- "<div>- &nbsp; &nbsp;I3312_LDRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;I3312_LDRX &nbsp; &nbsp; &nbsp;= 0x38000000 | LDST_LD &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_LDRSBW &nbsp; &nbsp;= 0x38000000 | LDST_LD_S_W &lt;&lt; 22 | MO_UB &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_LDRSHW &nbsp; &nbsp;= 0x38000000 | LDST_LD_S_W &lt;&lt; 22 | MO_UW &lt;&lt; 30,</div>\r\n"
- "<div>@@ -449,8 &#43;449,8 @@ typedef enum {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_LDRVS &nbsp; &nbsp; = 0x3c000000 | LDST_LD &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_STRVS &nbsp; &nbsp; = 0x3c000000 | LDST_ST &lt;&lt; 22 | MO_UL &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;I3312_LDRVD &nbsp; &nbsp; = 0x3c000000 | LDST_LD &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>\r\n"
- "<div>- &nbsp; &nbsp;I3312_STRVD &nbsp; &nbsp; = 0x3c000000 | LDST_ST &lt;&lt; 22 | MO_64 &lt;&lt; 30,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;I3312_LDRVD &nbsp; &nbsp; = 0x3c000000 | LDST_LD &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;I3312_STRVD &nbsp; &nbsp; = 0x3c000000 | LDST_ST &lt;&lt; 22 | MO_UQ &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_LDRVQ &nbsp; &nbsp; = 0x3c000000 | 3 &lt;&lt; 22 | 0 &lt;&lt; 30,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;I3312_STRVQ &nbsp; &nbsp; = 0x3c000000 | 2 &lt;&lt; 22 | 0 &lt;&lt; 30,</div>\r\n"
- "<div>@@ -1595,7 &#43;1595,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (opc &amp; MO_SIGN) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_sxt(s, lb-&gt;type, size, lb-&gt;datalo_reg, TCG_REG_X0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, size == MO_64, lb-&gt;datalo_reg, TCG_REG_X0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, size == MO_UQ, lb-&gt;datalo_reg, TCG_REG_X0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_goto(s, lb-&gt;raddr);</div>\r\n"
- "<div>@@ -1614,7 &#43;1614,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_PTR, TCG_REG_X0, TCG_AREG0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TARGET_LONG_BITS == 64, TCG_REG_X1, lb-&gt;addrlo_reg);</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_out_mov(s, size == MO_64, TCG_REG_X2, lb-&gt;datalo_reg);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_out_mov(s, size == MO_UQ, TCG_REG_X2, lb-&gt;datalo_reg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_movi(s, TCG_TYPE_I32, TCG_REG_X3, oi);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_adr(s, TCG_REG_X4, lb-&gt;raddr);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_call(s, qemu_st_helpers[opc &amp; (MO_BSWAP | MO_SIZE)]);</div>\r\n"
- "<div>@@ -1754,7 &#43;1754,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp memop, TCGType ext,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_ldst_r(s, I3312_LDRSWX, data_r, addr_r, otype, off_r);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_ldst_r(s, I3312_LDRX, data_r, addr_r, otype, off_r);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_rev64(s, data_r, data_r);</div>\r\n"
- "<div>@@ -1789,7 &#43;1789,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGMemOp memop,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_ldst_r(s, I3312_STRW, data_r, addr_r, otype, off_r);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap &amp;&amp; data_r != TCG_REG_XZR) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_rev64(s, TCG_REG_TMP, data_r);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data_r = TCG_REG_TMP;</div>\r\n"
- "<div>@@ -1838,7 &#43;1838,7 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg data_reg, TCGReg addr_reg,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_tlb_read(s, addr_reg, memop, &amp;label_ptr, mem_index, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_qemu_st_direct(s, memop, data_reg,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TCG_REG_X1, otype, addr_reg);</div>\r\n"
- "<div>- &nbsp; &nbsp;add_qemu_ldst_label(s, false, oi, (memop &amp; MO_SIZE)== MO_64,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;add_qemu_ldst_label(s, false, oi, (memop &amp; MO_SIZE) == MO_UQ,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data_reg, addr_reg, s-&gt;code_ptr, label_ptr);</div>\r\n"
- "<div>&nbsp;#else /* !CONFIG_SOFTMMU */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (USE_GUEST_BASE) {</div>\r\n"
- "<div>@@ -2506,7 &#43;2506,7 @@ int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case INDEX_op_smin_vec:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case INDEX_op_umax_vec:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case INDEX_op_umin_vec:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;return vece &lt; MO_64;</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;return vece &lt; MO_UQ;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0;</div>\r\n"
- "<div>diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c</div>\r\n"
- "<div>index 05560a2..70eeb8a 100644</div>\r\n"
- "<div>--- a/tcg/arm/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/arm/tcg-target.inc.c</div>\r\n"
- "<div>@@ -1389,7 &#43;1389,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov_reg(s, COND_AL, datalo, TCG_REG_R0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (datalo != TCG_REG_R1) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov_reg(s, COND_AL, datalo, TCG_REG_R0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov_reg(s, COND_AL, datahi, TCG_REG_R1);</div>\r\n"
- "<div>@@ -1439,7 &#43;1439,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;argreg = tcg_out_arg_reg32(s, argreg, datalo);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;argreg = tcg_out_arg_reg64(s, argreg, datalo, datahi);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -1487,7 &#43;1487,7 @@ static inline void tcg_out_qemu_ld_index(TCGContext *s, TCGMemOp opc,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, COND_AL, datalo, datalo);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dl = (bswap ? datahi : datalo);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dh = (bswap ? datalo : datahi);</div>\r\n"
- "<div>@@ -1548,7 &#43;1548,7 @@ static inline void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp opc,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, COND_AL, datalo, datalo);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dl = (bswap ? datahi : datalo);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGReg dh = (bswap ? datalo : datahi);</div>\r\n"
- "<div>@@ -1641,7 &#43;1641,7 @@ static inline void tcg_out_qemu_st_index(TCGContext *s, int cond, TCGMemOp opc,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st32_r(s, cond, datalo, addrlo, addend);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Avoid strd for user-only emulation, to handle unaligned. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, cond, TCG_REG_R0, datahi);</div>\r\n"
- "<div>@@ -1686,7 &#43;1686,7 @@ static inline void tcg_out_qemu_st_direct(TCGContext *s, TCGMemOp opc,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st32_12(s, COND_AL, datalo, addrlo, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Avoid strd for user-only emulation, to handle unaligned. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap32(s, COND_AL, TCG_REG_R0, datahi);</div>\r\n"
- "<div>diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c</div>\r\n"
- "<div>index 93e4c63..3a73334 100644</div>\r\n"
- "<div>--- a/tcg/i386/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/i386/tcg-target.inc.c</div>\r\n"
- "<div>@@ -902,7 &#43;902,7 @@ static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* imm8 operand: all output lanes selected from input lane 0. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out8(s, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_vex_modrm(s, OPC_PUNPCKLQDQ, r, a, a);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -921,7 &#43;921,7 @@ static bool tcg_out_dupm_vec(TCGContext *s, TCGType type, unsigned vece,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r, 0, base, offset);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (vece) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_vex_modrm_offset(s, OPC_MOVDDUP, r, 0, base, offset);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>@@ -1868,7 &#43;1868,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, data_reg, TCG_REG_EAX);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, data_reg, TCG_REG_RAX);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (data_reg == TCG_REG_EDX) {</div>\r\n"
- "<div>@@ -1923,7 &#43;1923,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st(s, TCG_TYPE_I32, l-&gt;datalo_reg, TCG_REG_ESP, ofs);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ofs &#43;= 4;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_st(s, TCG_TYPE_I32, l-&gt;datahi_reg, TCG_REG_ESP, ofs);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ofs &#43;= 4;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -1937,7 &#43;1937,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_PTR, tcg_target_call_iarg_regs[0], TCG_AREG0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The second argument is already loaded with addrlo. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, (s_bits == MO_64 ? TCG_TYPE_I64 : TCG_TYPE_I32),</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, (s_bits == MO_UQ ? TCG_TYPE_I64 : TCG_TYPE_I32),</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_target_call_iarg_regs[2], l-&gt;datalo_reg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_movi(s, TCG_TYPE_I32, tcg_target_call_iarg_regs[3], oi);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2060,7 &#43;2060,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg datalo, TCGReg datahi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_modrm_sib_offset(s, movop &#43; P_REXW &#43; seg, datalo,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; base, index, 0, ofs);</div>\r\n"
- "<div>@@ -2181,7 &#43;2181,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg datalo, TCGReg datahi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_modrm_sib_offset(s, movop &#43; seg, datalo, base, index, 0, ofs);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (bswap) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, scratch, datalo);</div>\r\n"
- "<div>@@ -2755,7 &#43;2755,7 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_UD2, OPC_UD2, OPC_VPSRLVD, OPC_VPSRLVQ</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;static int const sarv_insn[4] = {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_UW, MO_64. &nbsp;*/</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_UW, MO_UQ. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_UD2, OPC_UD2, OPC_VPSRAVD, OPC_UD2</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;static int const shls_insn[4] = {</div>\r\n"
- "<div>@@ -2768,7 &#43;2768,7 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_UD2, OPC_PSRAW, OPC_PSRAD, OPC_UD2</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;static int const abs_insn[4] = {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_64. &nbsp;*/</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;/* TODO: AVX512 adds support for MO_UQ. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OPC_PABSB, OPC_PABSW, OPC_PABSD, OPC_UD2</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2898,7 &#43;2898,7 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sub = 2;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto gen_shift;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case INDEX_op_sari_vec:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_debug_assert(vece != MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_debug_assert(vece != MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sub = 4;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;gen_shift:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_debug_assert(vece != MO_UB);</div>\r\n"
- "<div>@@ -3281,9 &#43;3281,11 @@ int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UB) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return -1;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;/* We can emulate this for MO_64, but it does not pay off</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unless we're producing at least 4 values. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;/*</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; * We can emulate this for MO_UQ, but it does not pay off</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; * unless we're producing at least 4 values.</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return type &gt;= TCG_TYPE_V256 ? -1 : 0;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 1;</div>\r\n"
- "<div>@@ -3305,7 &#43;3307,7 @@ int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* We can expand the operation for MO_UB. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return -1;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 1;</div>\r\n"
- "<div>@@ -3389,7 &#43;3391,7 @@ static void expand_vec_sari(TCGType type, unsigned vece,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_vec(t2);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (imm &lt;= 32) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* We can emulate a small sign extend by performing an arithmetic</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * 32-bit shift and overwriting the high half of a 64-bit logical</div>\r\n"
- "<div>@@ -3397,7 &#43;3399,7 @@ static void expand_vec_sari(TCGType type, unsigned vece,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t1 = tcg_temp_new_vec(type);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_vec(MO_UL, t1, v1, imm);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_64, v0, v1, imm);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_UQ, v0, v1, imm);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_4(INDEX_op_x86_blend_vec, type, MO_UL,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcgv_vec_arg(v0), tcgv_vec_arg(v0),</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcgv_vec_arg(t1), 0xaa);</div>\r\n"
- "<div>@@ -3407,10 &#43;3409,10 @@ static void expand_vec_sari(TCGType type, unsigned vece,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * the sign-extend, shift and merge.</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t1 = tcg_const_zeros_vec(type);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_cmp_vec(TCG_COND_GT, MO_64, t1, t1, v1);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_64, v0, v1, imm);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shli_vec(MO_64, t1, t1, 64 - imm);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_or_vec(MO_64, v0, v0, t1);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_cmp_vec(TCG_COND_GT, MO_UQ, t1, t1, v1);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shri_vec(MO_UQ, v0, v1, imm);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_shli_vec(MO_UQ, t1, t1, 64 - imm);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_or_vec(MO_UQ, v0, v0, t1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_vec(t1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>diff --git a/tcg/mips/tcg-target.inc.c b/tcg/mips/tcg-target.inc.c</div>\r\n"
- "<div>index a78fe87..ef31fc8 100644</div>\r\n"
- "<div>--- a/tcg/mips/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/mips/tcg-target.inc.c</div>\r\n"
- "<div>@@ -1336,7 &#43;1336,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_PTR, tcg_target_call_iarg_regs[0], TCG_AREG0);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;v0 = l-&gt;datalo_reg;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* We eliminated V0 from the possible output registers, so it</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cannot be clobbered here. &nbsp;So we must move V1 first. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (MIPS_BE) {</div>\r\n"
- "<div>@@ -1389,7 &#43;1389,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = tcg_out_call_iarg_reg(s, i, l-&gt;datalo_reg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = tcg_out_call_iarg_reg2(s, i, l-&gt;datalo_reg, l-&gt;datahi_reg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>@@ -1470,7 &#43;1470,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_SL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LW, lo, base, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q | MO_BSWAP:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (use_mips32r2_instructions) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LD, lo, base, 0);</div>\r\n"
- "<div>@@ -1499,7 &#43;1499,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, MIPS_BE ? hi : lo, TCG_TMP3);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Prefer to load from offset 0 first, but allow for overlap. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LD, lo, base, 0);</div>\r\n"
- "<div>@@ -1587,7 &#43;1587,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SW, lo, base, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64 | MO_BSWAP:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_bswap64(s, TCG_TMP3, lo);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SD, TCG_TMP3, base, 0);</div>\r\n"
- "<div>@@ -1605,7 &#43;1605,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SW, TCG_TMP3, base, 4);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_SD, lo, base, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c</div>\r\n"
- "<div>index 835336a..13a2437 100644</div>\r\n"
- "<div>--- a/tcg/ppc/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/ppc/tcg-target.inc.c</div>\r\n"
- "<div>@@ -1445,24 &#43;1445,24 @@ static const uint32_t qemu_ldx_opc[16] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UB] = LBZX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UW] = LHZX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UL] = LWZX,</div>\r\n"
- "<div>- &nbsp; &nbsp;[MO_Q] &nbsp;= LDX,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;[MO_UQ] &nbsp;= LDX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_SW] = LHAX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_SL] = LWAX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UB] = LBZX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UW] = LHBRX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UL] = LWBRX,</div>\r\n"
- "<div>- &nbsp; &nbsp;[MO_BSWAP | MO_Q] &nbsp;= LDBRX,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;[MO_BSWAP | MO_UQ] &nbsp;= LDBRX,</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static const uint32_t qemu_stx_opc[16] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UB] = STBX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UW] = STHX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UL] = STWX,</div>\r\n"
- "<div>- &nbsp; &nbsp;[MO_Q] &nbsp;= STDX,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;[MO_UQ] &nbsp;= STDX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UB] = STBX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UW] = STHBRX,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_BSWAP | MO_UL] = STWBRX,</div>\r\n"
- "<div>- &nbsp; &nbsp;[MO_BSWAP | MO_Q] &nbsp;= STDBRX,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;[MO_BSWAP | MO_UQ] &nbsp;= STDBRX,</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static const uint32_t qemu_exts_opc[4] = {</div>\r\n"
- "<div>@@ -1663,7 &#43;1663,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;lo = lb-&gt;datalo_reg;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;hi = lb-&gt;datahi_reg;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (opc &amp; MO_SIZE) == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, lo, TCG_REG_R4);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I32, hi, TCG_REG_R3);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else if (opc &amp; MO_SIGN) {</div>\r\n"
- "<div>@@ -1708,7 &#43;1708,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;hi = lb-&gt;datahi_reg;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (s_bits) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp;#ifdef TCG_TARGET_CALL_ALIGN_ARGS</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arg |= 1;</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>@@ -1722,7 &#43;1722,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (s_bits == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, arg&#43;&#43;, lo);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_rld(s, RLDICL, arg&#43;&#43;, lo, 0, 64 - (8 &lt;&lt; s_bits));</div>\r\n"
- "<div>@@ -1775,7 &#43;1775,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGArg *args, bool is_64)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (opc &amp; MO_BSWAP) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, ADDI | TAI(TCG_REG_R0, addrlo, 4));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, LWBRX | TAB(datalo, rbase, addrlo));</div>\r\n"
- "<div>@@ -1850,7 &#43;1850,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGArg *args, bool is_64)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;#endif</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; s_bits == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (opc &amp; MO_BSWAP) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, ADDI | TAI(TCG_REG_R0, addrlo, 4));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out32(s, STWBRX | SAB(datalo, rbase, addrlo));</div>\r\n"
- "<div>diff --git a/tcg/riscv/tcg-target.inc.c b/tcg/riscv/tcg-target.inc.c</div>\r\n"
- "<div>index 1905986..90363df 100644</div>\r\n"
- "<div>--- a/tcg/riscv/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/riscv/tcg-target.inc.c</div>\r\n"
- "<div>@@ -1068,7 &#43;1068,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_movi(s, TCG_TYPE_PTR, a3, (tcg_target_long)l-&gt;raddr);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_call(s, qemu_ld_helpers[opc &amp; (MO_BSWAP | MO_SSIZE)]);</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_out_mov(s, (opc &amp; MO_SIZE) == MO_64, l-&gt;datalo_reg, a0);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_out_mov(s, (opc &amp; MO_SIZE) == MO_UQ, l-&gt;datalo_reg, a0);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_goto(s, l-&gt;raddr);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;return true;</div>\r\n"
- "<div>@@ -1150,7 &#43;1150,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_SL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LW, lo, base, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Prefer to load from offset 0 first, but allow for overlap. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_imm(s, OPC_LD, lo, base, 0);</div>\r\n"
- "<div>@@ -1225,7 &#43;1225,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg lo, TCGReg hi,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_store(s, OPC_SW, base, lo, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_opc_store(s, OPC_SD, base, lo, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>diff --git a/tcg/s390/tcg-target.inc.c b/tcg/s390/tcg-target.inc.c</div>\r\n"
- "<div>index fe42939..db1102e 100644</div>\r\n"
- "<div>--- a/tcg/s390/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/s390/tcg-target.inc.c</div>\r\n"
- "<div>@@ -1477,10 &#43;1477,10 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp opc, TCGReg data,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, LGF, data, base, index, disp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q | MO_BSWAP:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, LRVG, data, base, index, disp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, LG, data, base, index, disp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1523,10 &#43;1523,10 @@ static void tcg_out_qemu_st_direct(TCGContext *s, TCGMemOp opc, TCGReg data,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q | MO_BSWAP:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ | MO_BSWAP:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, STRVG, data, base, index, disp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_insn(s, RXY, STG, data, base, index, disp);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1660,7 &#43;1660,7 @@ static bool tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tgen_ext32u(s, TCG_REG_R4, data_reg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_Q:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_I64, TCG_REG_R4, data_reg);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>diff --git a/tcg/sparc/tcg-target.inc.c b/tcg/sparc/tcg-target.inc.c</div>\r\n"
- "<div>index ac0d3a3..7c50118 100644</div>\r\n"
- "<div>--- a/tcg/sparc/tcg-target.inc.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/sparc/tcg-target.inc.c</div>\r\n"
- "<div>@@ -894,7 &#43;894,7 @@ static void emit_extend(TCGContext *s, TCGReg r, int op)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arith(s, r, r, 0, SHIFT_SRL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>@@ -977,7 &#43;977,7 @@ static void build_trampolines(TCGContext *s)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ra &#43;= 1;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((i &amp; MO_SIZE) == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((i &amp; MO_SIZE) == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Install the high part of the data. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arithi(s, ra, ra &#43; 1, 32, SHIFT_SRLX);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ra &#43;= 2;</div>\r\n"
- "<div>@@ -1217,7 &#43;1217,7 @@ static void tcg_out_qemu_ld(TCGContext *s, TCGReg data, TCGReg addr,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_REG, data, TCG_REG_O0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arithi(s, TCG_REG_O0, TCG_REG_O0, 32, SHIFT_SLLX);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arithi(s, TCG_REG_O1, TCG_REG_O1, 0, SHIFT_SRL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_out_arith(s, data, TCG_REG_O0, TCG_REG_O1, ARITH_OR);</div>\r\n"
- "<div>@@ -1274,7 &#43;1274,7 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg data, TCGReg addr,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;param&#43;&#43;;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_out_mov(s, TCG_TYPE_REG, param&#43;&#43;, addrz);</div>\r\n"
- "<div>- &nbsp; &nbsp;if (!SPARC64 &amp;&amp; (memop &amp; MO_SIZE) == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (!SPARC64 &amp;&amp; (memop &amp; MO_SIZE) == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Skip the high-part; we'll perform the extract in the trampoline. &nbsp;*/</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;param&#43;&#43;;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>diff --git a/tcg/tcg-op-gvec.c b/tcg/tcg-op-gvec.c</div>\r\n"
- "<div>index e63622c..0c0eea5 100644</div>\r\n"
- "<div>--- a/tcg/tcg-op-gvec.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/tcg-op-gvec.c</div>\r\n"
- "<div>@@ -312,7 &#43;312,7 @@ uint64_t (dup_const)(unsigned vece, uint64_t c)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0x0001000100010001ull * (uint16_t)c;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return 0x0000000100000001ull * (uint32_t)c;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return c;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g_assert_not_reached();</div>\r\n"
- "<div>@@ -352,7 &#43;352,7 @@ static void gen_dup_i64(unsigned vece, TCGv_i64 out, TCGv_i64 in)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case MO_UL:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_deposit_i64(out, in, in, 32, 32);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_i64(out, in);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -443,7 &#43;443,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_ptr t_ptr;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;uint32_t i;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;assert(vece &lt;= (in_32 ? MO_UL : MO_64));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;assert(vece &lt;= (in_32 ? MO_UL : MO_UQ));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;assert(in_32 == NULL || in_64 == NULL);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* If we're storing 0, expand oprsz to maxsz. &nbsp;*/</div>\r\n"
- "<div>@@ -459,7 &#43;459,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;type = choose_vector_type(NULL, vece, oprsz,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(TCG_TARGET_REG_BITS == 64 &amp;&amp; in_32 == NULL</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; (in_64 == NULL || vece == MO_64)));</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; (in_64 == NULL || vece == MO_UQ)));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (type != 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec t_vec = tcg_temp_new_vec(type);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -502,7 &#43;502,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* For 64-bit hosts, use 64-bit constants for &quot;simple&quot; constants</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; or when we'd need too many 32-bit stores, or when a 64-bit</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; constant is really required. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|| (TCG_TARGET_REG_BITS == 64</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;&amp; (in_c == 0 || in_c == -1</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|| !check_size_impl(oprsz, 4)))) {</div>\r\n"
- "<div>@@ -534,7 &#43;534,7 @@ static void do_dup(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_addi_ptr(t_ptr, cpu_env, dofs);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;t_desc = tcg_const_i32(simd_desc(oprsz, maxsz, 0));</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (vece == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (vece == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (in_64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_helper_gvec_dup64(t_ptr, t_desc, in_64);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>@@ -1438,7 &#43;1438,7 @@ void tcg_gen_gvec_dup_i64(unsigned vece, uint32_t dofs, uint32_t oprsz,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32_t maxsz, TCGv_i64 in)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;check_size_align(oprsz, maxsz, dofs);</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;do_dup(vece, dofs, oprsz, maxsz, NULL, in, 0);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1446,7 &#43;1446,7 @@ void tcg_gen_gvec_dup_mem(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;uint32_t oprsz, uint32_t maxsz)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;check_size_align(oprsz, maxsz, dofs);</div>\r\n"
- "<div>- &nbsp; &nbsp;if (vece &lt;= MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (vece &lt;= MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGType type = choose_vector_type(NULL, vece, oprsz, 0);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (type != 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec t_vec = tcg_temp_new_vec(type);</div>\r\n"
- "<div>@@ -1512,7 &#43;1512,7 @@ void tcg_gen_gvec_dup64i(uint32_t dofs, uint32_t oprsz,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uint32_t maxsz, uint64_t x)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;check_size_align(oprsz, maxsz, dofs);</div>\r\n"
- "<div>- &nbsp; &nbsp;do_dup(MO_64, dofs, oprsz, maxsz, NULL, NULL, x);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;do_dup(MO_UQ, dofs, oprsz, maxsz, NULL, NULL, x);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;void tcg_gen_gvec_dup32i(uint32_t dofs, uint32_t oprsz,</div>\r\n"
- "<div>@@ -1624,10 &#43;1624,10 @@ void tcg_gen_gvec_add(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_add64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_add,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1655,10 &#43;1655,10 @@ void tcg_gen_gvec_adds(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_adds64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_add,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, c, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1696,10 &#43;1696,10 @@ void tcg_gen_gvec_subs(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_subs64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sub,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, c, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1775,10 &#43;1775,10 @@ void tcg_gen_gvec_sub(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sub64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_sub,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1806,10 &#43;1806,10 @@ void tcg_gen_gvec_mul(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_mul64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mul,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1835,10 &#43;1835,10 @@ void tcg_gen_gvec_muls(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_muls64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list_mul,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, c, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1870,9 &#43;1870,9 @@ void tcg_gen_gvec_ssadd(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ .fniv = tcg_gen_ssadd_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ssadd64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1896,9 &#43;1896,9 @@ void tcg_gen_gvec_sssub(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ .fniv = tcg_gen_sssub_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sssub64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1940,9 &#43;1940,9 @@ void tcg_gen_gvec_usadd(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_usadd_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_usadd64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -1984,9 &#43;1984,9 @@ void tcg_gen_gvec_ussub(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_ussub_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ussub64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2012,9 &#43;2012,9 @@ void tcg_gen_gvec_smin(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_smin_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_smin64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2040,9 &#43;2040,9 @@ void tcg_gen_gvec_umin(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_umin_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_umin64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2068,9 &#43;2068,9 @@ void tcg_gen_gvec_smax(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_smax_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_smax64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2096,9 &#43;2096,9 @@ void tcg_gen_gvec_umax(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fniv = tcg_gen_umax_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_umax64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 }</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ }</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2171,10 &#43;2171,10 @@ void tcg_gen_gvec_neg(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_neg64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2(dofs, aofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2234,10 &#43;2234,10 @@ void tcg_gen_gvec_abs(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_abs64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_2(dofs, aofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2382,7 &#43;2382,7 @@ static const GVecGen2s gop_ands = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.fniv = tcg_gen_and_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ands,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp;.vece = MO_64</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;.vece = MO_UQ</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;void tcg_gen_gvec_ands(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>@@ -2407,7 &#43;2407,7 @@ static const GVecGen2s gop_xors = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.fniv = tcg_gen_xor_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_xors,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp;.vece = MO_64</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;.vece = MO_UQ</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;void tcg_gen_gvec_xors(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>@@ -2432,7 &#43;2432,7 @@ static const GVecGen2s gop_ors = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.fniv = tcg_gen_or_vec,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_ors,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp;.vece = MO_64</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;.vece = MO_UQ</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;void tcg_gen_gvec_ors(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>@@ -2491,10 &#43;2491,10 @@ void tcg_gen_gvec_shli(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shl64i,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_debug_assert(shift &gt;= 0 &amp;&amp; shift &lt; (8 &lt;&lt; vece));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (shift == 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_gvec_mov(vece, dofs, aofs, oprsz, maxsz);</div>\r\n"
- "<div>@@ -2542,10 &#43;2542,10 @@ void tcg_gen_gvec_shri(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shr64i,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_debug_assert(shift &gt;= 0 &amp;&amp; shift &lt; (8 &lt;&lt; vece));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (shift == 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_gvec_mov(vece, dofs, aofs, oprsz, maxsz);</div>\r\n"
- "<div>@@ -2607,10 &#43;2607,10 @@ void tcg_gen_gvec_sari(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sar64i,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_debug_assert(shift &gt;= 0 &amp;&amp; shift &lt; (8 &lt;&lt; vece));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (shift == 0) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_gvec_mov(vece, dofs, aofs, oprsz, maxsz);</div>\r\n"
- "<div>@@ -2660,7 &#43;2660,7 @@ do_gvec_shifts(unsigned vece, uint32_t dofs, uint32_t aofs, TCGv_i32 shift,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;check_overlap_2(dofs, aofs, maxsz);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* If the backend has a scalar expansion, great. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp;type = choose_vector_type(g-&gt;s_list, vece, oprsz, vece == MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;type = choose_vector_type(g-&gt;s_list, vece, oprsz, vece == MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (type) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;const TCGOpcode *hold_list = tcg_swap_vecop_list(NULL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch (type) {</div>\r\n"
- "<div>@@ -2692,15 &#43;2692,15 @@ do_gvec_shifts(unsigned vece, uint32_t dofs, uint32_t aofs, TCGv_i32 shift,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* If the backend supports variable vector shifts, also cool. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp;type = choose_vector_type(g-&gt;v_list, vece, oprsz, vece == MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;type = choose_vector_type(g-&gt;v_list, vece, oprsz, vece == MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (type) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;const TCGOpcode *hold_list = tcg_swap_vecop_list(NULL);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec v_shift = tcg_temp_new_vec(type);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 sh64 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(sh64, shift);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_64, v_shift, sh64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_UQ, v_shift, sh64);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(sh64);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i32_vec(vece, v_shift, shift);</div>\r\n"
- "<div>@@ -2738,7 &#43;2738,7 @@ do_gvec_shifts(unsigned vece, uint32_t dofs, uint32_t aofs, TCGv_i32 shift,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;/* Otherwise fall back to integral... */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (vece == MO_UL &amp;&amp; check_size_impl(oprsz, 4)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_2s_i32(dofs, aofs, oprsz, shift, false, g-&gt;fni4);</div>\r\n"
- "<div>- &nbsp; &nbsp;} else if (vece == MO_64 &amp;&amp; check_size_impl(oprsz, 8)) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;} else if (vece == MO_UQ &amp;&amp; check_size_impl(oprsz, 8)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 sh64 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(sh64, shift);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_2s_i64(dofs, aofs, oprsz, sh64, false, g-&gt;fni8);</div>\r\n"
- "<div>@@ -2785,7 &#43;2785,7 @@ void tcg_gen_gvec_shls(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.v_list = { INDEX_op_shlv_vec, 0 },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;do_gvec_shifts(vece, dofs, aofs, shift, oprsz, maxsz, &amp;g);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2807,7 &#43;2807,7 @@ void tcg_gen_gvec_shrs(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.v_list = { INDEX_op_shrv_vec, 0 },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;do_gvec_shifts(vece, dofs, aofs, shift, oprsz, maxsz, &amp;g);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2829,7 &#43;2829,7 @@ void tcg_gen_gvec_sars(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.v_list = { INDEX_op_sarv_vec, 0 },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;do_gvec_shifts(vece, dofs, aofs, shift, oprsz, maxsz, &amp;g);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2895,10 &#43;2895,10 @@ void tcg_gen_gvec_shlv(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shl64v,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -2958,10 &#43;2958,10 @@ void tcg_gen_gvec_shrv(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_shr64v,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -3021,10 &#43;3021,10 @@ void tcg_gen_gvec_sarv(unsigned vece, uint32_t dofs, uint32_t aofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fno = gen_helper_gvec_sar64v,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.opt_opc = vecop_list,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.prefer_i64 = TCG_TARGET_REG_BITS == 64,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_64 },</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.vece = MO_UQ },</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;tcg_debug_assert(vece &lt;= MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &amp;g[vece]);</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -3140,7 &#43;3140,7 @@ void tcg_gen_gvec_cmp(TCGCond cond, unsigned vece, uint32_t dofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; */</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;hold_list = tcg_swap_vecop_list(cmp_list);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;type = choose_vector_type(cmp_list, vece, oprsz,</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCG_TARGET_REG_BITS == 64 &amp;&amp; vece == MO_64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCG_TARGET_REG_BITS == 64 &amp;&amp; vece == MO_UQ);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;switch (type) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case TCG_TYPE_V256:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Recall that ARM SVE allows vector sizes that are not a</div>\r\n"
- "<div>@@ -3166,7 &#43;3166,7 @@ void tcg_gen_gvec_cmp(TCGCond cond, unsigned vece, uint32_t dofs,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;case 0:</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64 &amp;&amp; check_size_impl(oprsz, 8)) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ &amp;&amp; check_size_impl(oprsz, 8)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_cmp_i64(dofs, aofs, bofs, oprsz, cond);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (vece == MO_UL &amp;&amp; check_size_impl(oprsz, 4)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expand_cmp_i32(dofs, aofs, bofs, oprsz, cond);</div>\r\n"
- "<div>diff --git a/tcg/tcg-op-vec.c b/tcg/tcg-op-vec.c</div>\r\n"
- "<div>index ff723ab..e8aea38 100644</div>\r\n"
- "<div>--- a/tcg/tcg-op-vec.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/tcg-op-vec.c</div>\r\n"
- "<div>@@ -216,7 &#43;216,7 @@ void tcg_gen_mov_vec(TCGv_vec r, TCGv_vec a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>-#define MO_REG &nbsp;(TCG_TARGET_REG_BITS == 64 ? MO_64 : MO_UL)</div>\r\n"
- "<div>&#43;#define MO_REG &nbsp;(TCG_TARGET_REG_BITS == 64 ? MO_UQ : MO_UL)</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;static void do_dupi_vec(TCGv_vec r, unsigned vece, TCGArg a)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>@@ -255,10 &#43;255,10 @@ void tcg_gen_dup64i_vec(TCGv_vec r, uint64_t a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; a == deposit64(a, 32, 32, a)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;do_dupi_vec(r, MO_UL, a);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else if (TCG_TARGET_REG_BITS == 64 || a == (uint64_t)(int32_t)a) {</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;do_dupi_vec(r, MO_64, a);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;do_dupi_vec(r, MO_UQ, a);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 c = tcg_const_i64(a);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_64, r, c);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_UQ, r, c);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(c);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp;}</div>\r\n"
- "<div>@@ -292,10 &#43;292,10 @@ void tcg_gen_dup_i64_vec(unsigned vece, TCGv_vec r, TCGv_i64 a)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg ai = tcgv_i64_arg(a);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_2(INDEX_op_dup_vec, type, vece, ri, ai);</div>\r\n"
- "<div>- &nbsp; &nbsp;} else if (vece == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;} else if (vece == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg al = tcgv_i32_arg(TCGV_LOW(a));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg ah = tcgv_i32_arg(TCGV_HIGH(a));</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_3(INDEX_op_dup2_vec, type, MO_64, ri, al, ah);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_3(INDEX_op_dup2_vec, type, MO_UQ, ri, al, ah);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGArg ai = tcgv_i32_arg(TCGV_LOW(a));</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vec_gen_2(INDEX_op_dup_vec, type, vece, ri, ai);</div>\r\n"
- "<div>@@ -709,10 &#43;709,10 @@ static void do_shifts(unsigned vece, TCGv_vec r, TCGv_vec a,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_vec vec_s = tcg_temp_new_vec(type);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if (vece == MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TCGv_i64 s64 = tcg_temp_new_i64();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_extu_i32_i64(s64, s);</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_64, vec_s, s64);</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i64_vec(MO_UQ, vec_s, s64);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(s64);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_dup_i32_vec(vece, vec_s, s);</div>\r\n"
- "<div>diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c</div>\r\n"
- "<div>index 447683d..a9f3e13 100644</div>\r\n"
- "<div>--- a/tcg/tcg-op.c</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/tcg-op.c</div>\r\n"
- "<div>@@ -2730,7 &#43;2730,7 @@ static inline TCGMemOp tcg_canonicalize_memop(TCGMemOp op, bool is64, bool st)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;op &amp;= ~MO_SIGN;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!is64) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_abort();</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -2862,7 &#43;2862,7 @@ void tcg_gen_qemu_ld_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGMemOp orig_memop;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_ld_i32(TCGV_LOW(val), addr, idx, memop);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (memop &amp; MO_SIGN) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_sari_i32(TCGV_HIGH(val), TCGV_LOW(val), 31);</div>\r\n"
- "<div>@@ -2881,7 &#43;2881,7 @@ void tcg_gen_qemu_ld_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;if (!TCG_TARGET_HAS_MEMORY_BSWAP &amp;&amp; (memop &amp; MO_BSWAP)) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop &amp;= ~MO_BSWAP;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* The bswap primitive requires zero-extended input. &nbsp;*/</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIGN) &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;if ((memop &amp; MO_SIGN) &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;memop &amp;= ~MO_SIGN;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -2902,7 &#43;2902,7 @@ void tcg_gen_qemu_ld_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32s_i64(val, val);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(val, val);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -2915,7 &#43;2915,7 @@ void tcg_gen_qemu_st_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;TCGv_i64 swap = NULL;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if (TCG_TARGET_REG_BITS == 32 &amp;&amp; (memop &amp; MO_SIZE) &lt; MO_UQ) {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_qemu_st_i32(TCGV_LOW(val), addr, idx, memop);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>@@ -2936,7 &#43;2936,7 @@ void tcg_gen_qemu_st_i64(TCGv_i64 val, TCGv addr, TCGArg idx, TCGMemOp memop)</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_ext32u_i64(swap, val);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap32_i64(swap, swap);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>- &nbsp; &nbsp; &nbsp; &nbsp;case MO_64:</div>\r\n"
- "<div>&#43; &nbsp; &nbsp; &nbsp; &nbsp;case MO_UQ:</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_bswap64_i64(swap, val);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div>\r\n"
- "<div>@@ -3029,8 &#43;3029,8 @@ static void * const table_cmpxchg[16] = {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UW | MO_BE] = gen_helper_atomic_cmpxchgw_be,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_LE] = gen_helper_atomic_cmpxchgl_le,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_BE] = gen_helper_atomic_cmpxchgl_be,</div>\r\n"
- "<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_LE] = gen_helper_atomic_cmpxchgq_le)</div>\r\n"
- "<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_BE] = gen_helper_atomic_cmpxchgq_be)</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_LE] = gen_helper_atomic_cmpxchgq_le)</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_BE] = gen_helper_atomic_cmpxchgq_be)</div>\r\n"
- "<div>&nbsp;};</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp;void tcg_gen_atomic_cmpxchg_i32(TCGv_i32 retv, TCGv addr, TCGv_i32 cmpv,</div>\r\n"
- "<div>@@ -3099,7 &#43;3099,7 @@ void tcg_gen_atomic_cmpxchg_i64(TCGv_i64 retv, TCGv addr, TCGv_i64 cmpv,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_gen_mov_i64(retv, t1);</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tcg_temp_free_i64(t1);</div>\r\n"
- "<div>- &nbsp; &nbsp;} else if ((memop &amp; MO_SIZE) == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;} else if ((memop &amp; MO_SIZE) == MO_UQ) {</div>\r\n"
- "<div>&nbsp;#ifdef CONFIG_ATOMIC64</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_atomic_cx_i64 gen;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -3207,7 &#43;3207,7 @@ static void do_atomic_op_i64(TCGv_i64 ret, TCGv addr, TCGv_i64 val,</div>\r\n"
- "<div>&nbsp;{</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;memop = tcg_canonicalize_memop(memop, 1, 0);</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>- &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_64) {</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;if ((memop &amp; MO_SIZE) == MO_UQ) {</div>\r\n"
- "<div>&nbsp;#ifdef CONFIG_ATOMIC64</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gen_atomic_op_i64 gen;</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>@@ -3253,8 &#43;3253,8 @@ static void * const table_##NAME[16] = { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UW | MO_BE] = gen_helper_atomic_##NAME##w_be, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_LE] = gen_helper_atomic_##NAME##l_le, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;[MO_UL | MO_BE] = gen_helper_atomic_##NAME##l_be, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\</div>\r\n"
- "<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_LE] = gen_helper_atomic_##NAME##q_le) &nbsp; &nbsp; \\</div>\r\n"
- "<div>- &nbsp; &nbsp;WITH_ATOMIC64([MO_64 | MO_BE] = gen_helper_atomic_##NAME##q_be) &nbsp; &nbsp; \\</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_LE] = gen_helper_atomic_##NAME##q_le) &nbsp; &nbsp; \\</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;WITH_ATOMIC64([MO_UQ | MO_BE] = gen_helper_atomic_##NAME##q_be) &nbsp; &nbsp; \\</div>\r\n"
- "<div>&nbsp;}; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\\</div>\r\n"
- "<div>&nbsp;void tcg_gen_atomic_##NAME##_i32 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\\</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;(TCGv_i32 ret, TCGv addr, TCGv_i32 val, TCGArg idx, TCGMemOp memop) \\</div>\r\n"
- "<div>diff --git a/tcg/tcg.h b/tcg/tcg.h</div>\r\n"
- "<div>index 4b6ee89..63e9897 100644</div>\r\n"
- "<div>--- a/tcg/tcg.h</div>\r\n"
- "<div>&#43;&#43;&#43; b/tcg/tcg.h</div>\r\n"
- "<div>@@ -371,28 &#43;371,29 @@ typedef enum TCGMemOp {</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_UB &nbsp; &nbsp;= MO_8,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_UW &nbsp; &nbsp;= MO_16,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_UL &nbsp; &nbsp;= MO_32,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;MO_UQ &nbsp; &nbsp;= MO_64,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_SB &nbsp; &nbsp;= MO_SIGN | MO_8,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_SW &nbsp; &nbsp;= MO_SIGN | MO_16,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_SL &nbsp; &nbsp;= MO_SIGN | MO_32,</div>\r\n"
- "<div>- &nbsp; &nbsp;MO_Q &nbsp; &nbsp; = MO_64,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;MO_SQ &nbsp; &nbsp;= MO_SIGN | MO_64,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_LEUW &nbsp;= MO_LE | MO_UW,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_LEUL &nbsp;= MO_LE | MO_UL,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_LESW &nbsp;= MO_LE | MO_SW,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_LESL &nbsp;= MO_LE | MO_SL,</div>\r\n"
- "<div>- &nbsp; &nbsp;MO_LEQ &nbsp; = MO_LE | MO_Q,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;MO_LEQ &nbsp; = MO_LE | MO_UQ,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_BEUW &nbsp;= MO_BE | MO_UW,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_BEUL &nbsp;= MO_BE | MO_UL,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_BESW &nbsp;= MO_BE | MO_SW,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_BESL &nbsp;= MO_BE | MO_SL,</div>\r\n"
- "<div>- &nbsp; &nbsp;MO_BEQ &nbsp; = MO_BE | MO_Q,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;MO_BEQ &nbsp; = MO_BE | MO_UQ,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_TEUW &nbsp;= MO_TE | MO_UW,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_TEUL &nbsp;= MO_TE | MO_UL,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_TESW &nbsp;= MO_TE | MO_SW,</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_TESL &nbsp;= MO_TE | MO_SL,</div>\r\n"
- "<div>- &nbsp; &nbsp;MO_TEQ &nbsp; = MO_TE | MO_Q,</div>\r\n"
- "<div>&#43; &nbsp; &nbsp;MO_TEQ &nbsp; = MO_TE | MO_UQ,</div>\r\n"
- "<div>&nbsp;</div>\r\n"
- "<div>&nbsp; &nbsp; &nbsp;MO_SSIZE = MO_SIZE | MO_SIGN,</div>\r\n"
- "<div>&nbsp;} TCGMemOp;</div>\r\n"
- "<div>--&nbsp;</div>\r\n"
- "<div>1.8.3.1</div>\r\n"
- "<div><br>\r\n"
- "<br>\r\n"
- "</div>\r\n"
- "<p><br>\r\n"
- "</p>\r\n"
- "</body>\r\n"
- "</html>\r\n"
 
-08e531a2e82e40ec503edfffb6f1f2344d1925ff54d4c332082fb8e6bc596cb1
+817cc31b73647c1cd7bf464c7739546c428839c523ac82e685a20e147af7a944

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.