diff --git a/sys/jit/kern_jit_ops_avx.pas b/sys/jit/kern_jit_ops_avx.pas index 9f6e21fb..fbc4170e 100644 --- a/sys/jit/kern_jit_ops_avx.pas +++ b/sys/jit/kern_jit_ops_avx.pas @@ -898,6 +898,9 @@ begin jit_cbs[OPPv,OPmaskmov,OPSx_ps]:=@op_avx3_gen; jit_cbs[OPPv,OPmaskmov,OPSx_pd]:=@op_avx3_gen; + jit_cbs[OPPv,OPcomi ,OPSx_ss]:=@op_avx2_reg_mem_ro; + jit_cbs[OPPv,OPcomi ,OPSx_sd]:=@op_avx2_reg_mem_ro; + jit_cbs[OPPv,OPucomi,OPSx_ss]:=@op_avx2_reg_mem_ro; jit_cbs[OPPv,OPucomi,OPSx_sd]:=@op_avx2_reg_mem_ro; @@ -907,9 +910,6 @@ begin jit_cbs[OPPnone,OPblsmsk,OPSnone]:=@op_bmi_gen; jit_cbs[OPPnone,OPblsi ,OPSnone]:=@op_bmi_gen; - jit_cbs[OPPv,OPxor ,OPSx_ps]:=@op_avx3_gen; - jit_cbs[OPPv,OPxor ,OPSx_pd]:=@op_avx3_gen; - jit_cbs[OPPv,OPpcmpeq,OPSx_b ]:=@op_avx3_gen; jit_cbs[OPPv,OPpcmpeq,OPSx_w ]:=@op_avx3_gen; jit_cbs[OPPv,OPpcmpeq,OPSx_d ]:=@op_avx3_gen; @@ -1017,19 +1017,26 @@ begin jit_cbs[OPPnone,OPvperm,OPSx_ps]:=@op_avx3_not_vex_len; jit_cbs[OPPnone,OPvperm,OPSx_pd]:=@op_avx3_rmi; + jit_cbs[OPPv,OPxor ,OPSx_ps]:=@op_avx3_gen; + jit_cbs[OPPv,OPxor ,OPSx_pd]:=@op_avx3_gen; jit_cbs[OPPv,OPpxor ,OPSnone]:=@op_avx3_gen; + jit_cbs[OPPv,OPor ,OPSx_ps]:=@op_avx3_gen; jit_cbs[OPPv,OPor ,OPSx_pd]:=@op_avx3_gen; jit_cbs[OPPv,OPpor ,OPSnone]:=@op_avx3_gen; + jit_cbs[OPPv,OPand ,OPSx_ps]:=@op_avx3_gen; jit_cbs[OPPv,OPand ,OPSx_pd]:=@op_avx3_gen; + jit_cbs[OPPv,OPandn ,OPSx_ps]:=@op_avx3_gen; jit_cbs[OPPv,OPandn ,OPSx_pd]:=@op_avx3_gen; + jit_cbs[OPPv,OPpand ,OPSnone]:=@op_avx3_gen; jit_cbs[OPPv,OPpandn ,OPSnone]:=@op_avx3_gen; jit_cbs[OPPv,OPblend ,OPSx_ps]:=@op_avx3_gen; jit_cbs[OPPv,OPblend ,OPSx_pd]:=@op_avx3_gen; + jit_cbs[OPPv,OPpblend ,OPSx_w ]:=@op_avx3_gen; jit_cbs[OPPv,OPpblendvb,OPSnone]:=@op_vpblendvb; diff --git a/sys/jit/kern_jit_ops_sse.pas b/sys/jit/kern_jit_ops_sse.pas index ac0ebd30..9a0a54e2 100644 --- a/sys/jit/kern_jit_ops_sse.pas +++ b/sys/jit/kern_jit_ops_sse.pas @@ -465,17 +465,26 @@ begin //jit_cbs[OPPnone,OPmovmsk ,OPSx_pd]:=@op_rr; //jit_cbs[OPPnone,OPpmovmskb,OPSnone]:=@op_rr; + jit_cbs[OPPnone,OPcomi ,OPSx_ss]:=@op_reg_mem_ro; + jit_cbs[OPPnone,OPcomi ,OPSx_sd]:=@op_reg_mem_ro; + jit_cbs[OPPnone,OPucomi,OPSx_ss]:=@op_reg_mem_ro; jit_cbs[OPPnone,OPucomi,OPSx_sd]:=@op_reg_mem_ro; jit_cbs[OPPnone,OPxor,OPSx_ps]:=@op_reg_mem_rw; jit_cbs[OPPnone,OPxor,OPSx_pd]:=@op_reg_mem_rw; + jit_cbs[OPPnone,OPpxor,OPSnone]:=@op_reg_mem_rw; jit_cbs[OPPnone,OPor ,OPSx_ps]:=@op_reg_mem_rw; jit_cbs[OPPnone,OPor ,OPSx_pd]:=@op_reg_mem_rw; jit_cbs[OPPnone,OPpor,OPSnone]:=@op_reg_mem_rw; - jit_cbs[OPPnone,OPpxor ,OPSnone]:=@op_reg_mem_rw; + jit_cbs[OPPnone,OPand ,OPSx_ps]:=@op_reg_mem_rw; + jit_cbs[OPPnone,OPand ,OPSx_pd]:=@op_reg_mem_rw; + + jit_cbs[OPPnone,OPandn ,OPSx_ps]:=@op_reg_mem_rw; + jit_cbs[OPPnone,OPandn ,OPSx_pd]:=@op_reg_mem_rw; + jit_cbs[OPPnone,OPpand ,OPSnone]:=@op_reg_mem_rw; jit_cbs[OPPnone,OPpandn,OPSnone]:=@op_reg_mem_rw; @@ -535,7 +544,7 @@ begin jit_cbs[OPPnone,OPcvtss2 ,OPSx_sd]:=@op_reg_mem_wo; jit_cbs[OPPnone,OPcvtss2 ,OPSx_si]:=@op_reg_mem_wo; - jit_cbs[OPPnone,OPcvtsi2 ,OPSx_ss]:=@op_reg_mem_wo; + jit_cbs[OPPnone,OPcvtsd2 ,OPSx_ss]:=@op_reg_mem_wo; jit_cbs[OPPnone,OPcvtsd2 ,OPSx_si]:=@op_reg_mem_wo; jit_cbs[OPPnone,OPcvttps2,OPSx_dq]:=@op_reg_mem_wo;