This commit is contained in:
Pavel 2024-05-02 17:59:55 +03:00
parent 227d4b3d03
commit 694fe0e071
3 changed files with 26 additions and 32 deletions

View File

@ -3736,6 +3736,7 @@ begin
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (mreg.AMemSize=os64) then
begin
Vex.rexW:=True;
@ -3818,6 +3819,7 @@ begin
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (mreg.AMemSize=os64) then
begin
Vex.rexW:=True;
@ -3886,20 +3888,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (size=os0) then
begin
size:=reg0.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (size=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (size=os64) then
begin
@ -3963,20 +3964,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (mreg.AMemSize=os0) then
begin
mreg.AMemSize:=reg.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (mreg.AMemSize=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (mreg.AMemSize=os64) then
begin
@ -4039,20 +4039,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (size=os0) then
begin
size:=reg0.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (size=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (size=os64) then
begin
@ -4110,20 +4109,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (mreg.AMemSize=os0) then
begin
mreg.AMemSize:=reg0.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (mreg.AMemSize=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (mreg.AMemSize=os64) then
begin
@ -4204,20 +4202,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (mreg.AMemSize=os0) then
begin
mreg.AMemSize:=reg0.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (mreg.AMemSize=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (mreg.AMemSize=os64) then
begin
@ -4301,20 +4298,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (size=os0) then
begin
size:=reg0.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (size=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (size=os64) then
begin
@ -4379,20 +4375,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (size=os0) then
begin
size:=reg0.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (size=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (size=os64) then
begin
@ -4453,20 +4448,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (size=os0) then
begin
size:=reg0.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (size=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (size=os64) then
begin
@ -4518,20 +4512,19 @@ begin
ji:=default_jit_instruction;
Vex.Length:=0;
Vex.rexW:=False;
if (mreg.AMemSize=os0) then
begin
mreg.AMemSize:=reg.ASize;
end;
Vex.Length:=0;
if not (not_vex_len in desc.opt) then
if (mreg.AMemSize=os256) then
begin
Vex.Length:=1;
end;
Vex.rexW:=False;
if not (not_prefix in desc.opt) then
if (mreg.AMemSize=os64) then
begin

View File

@ -787,7 +787,7 @@ end;
const
vbroadcastsd_desc:t_op_desc=(
mem_reg:(opt:[not_impl]);
reg_mem:(op:$19;simdop:1;mm:2;opt:[not_vex_len]);
reg_mem:(op:$19;simdop:1;mm:2;opt:[not_prefix]);
reg_imm:(opt:[not_impl]);
reg_im8:(opt:[not_impl]);
hint:[];
@ -807,7 +807,7 @@ end;
const
vbroadcastf128_desc:t_op_desc=(
mem_reg:(opt:[not_impl]);
reg_mem:(op:$1A;simdop:1;mm:2;opt:[not_vex_len]);
reg_mem:(op:$1A;simdop:1;mm:2);
reg_imm:(opt:[not_impl]);
reg_im8:(opt:[not_impl]);
hint:[his_wo];
@ -817,6 +817,8 @@ procedure op_vbroadcastf128(var ctx:t_jit_context2);
begin
if is_memory(ctx.din) then
begin
//Vex.VectorLength = os256
ctx.din.Operand[2].Size:=os256;
op_emit_avx2(ctx,vbroadcastf128_desc);
end else
begin

View File

@ -176,7 +176,7 @@ var
i:Byte;
begin
Result:=0;
For i:=0 to 7 do
For i:=1 to 7 do
begin
if RT_ENABLE(i) then
begin
@ -902,8 +902,7 @@ begin
end else
begin
Result.IMAGE_USAGE:=TM_READ or TM_WRITE;
end; Result.FImageView.cformat :=Result.FImageInfo.cformat;
Result.FImageView.vtype :=ord(VK_IMAGE_VIEW_TYPE_2D);
end;
//if (Result.blend.blendEnable<>0) then
//begin