Add SIMD load_complex
This commit is contained in:
@@ -1582,6 +1582,7 @@ fn define_simd(
|
|||||||
let imul = shared.by_name("imul");
|
let imul = shared.by_name("imul");
|
||||||
let ishl_imm = shared.by_name("ishl_imm");
|
let ishl_imm = shared.by_name("ishl_imm");
|
||||||
let load = shared.by_name("load");
|
let load = shared.by_name("load");
|
||||||
|
let load_complex = shared.by_name("load_complex");
|
||||||
let raw_bitcast = shared.by_name("raw_bitcast");
|
let raw_bitcast = shared.by_name("raw_bitcast");
|
||||||
let regfill = shared.by_name("regfill");
|
let regfill = shared.by_name("regfill");
|
||||||
let regmove = shared.by_name("regmove");
|
let regmove = shared.by_name("regmove");
|
||||||
@@ -1625,6 +1626,9 @@ fn define_simd(
|
|||||||
let rec_fld = r.template("fld");
|
let rec_fld = r.template("fld");
|
||||||
let rec_fldDisp32 = r.template("fldDisp32");
|
let rec_fldDisp32 = r.template("fldDisp32");
|
||||||
let rec_fldDisp8 = r.template("fldDisp8");
|
let rec_fldDisp8 = r.template("fldDisp8");
|
||||||
|
let rec_fldWithIndex = r.template("fldWithIndex");
|
||||||
|
let rec_fldWithIndexDisp32 = r.template("fldWithIndexDisp32");
|
||||||
|
let rec_fldWithIndexDisp8 = r.template("fldWithIndexDisp8");
|
||||||
let rec_fregfill32 = r.template("fregfill32");
|
let rec_fregfill32 = r.template("fregfill32");
|
||||||
let rec_fregspill32 = r.template("fregspill32");
|
let rec_fregspill32 = r.template("fregspill32");
|
||||||
let rec_frmov = r.template("frmov");
|
let rec_frmov = r.template("frmov");
|
||||||
@@ -1856,6 +1860,21 @@ fn define_simd(
|
|||||||
e.enc_32_64(bound_load.clone(), rec_fldDisp8.opcodes(&MOVUPS_LOAD));
|
e.enc_32_64(bound_load.clone(), rec_fldDisp8.opcodes(&MOVUPS_LOAD));
|
||||||
e.enc_32_64(bound_load, rec_fldDisp32.opcodes(&MOVUPS_LOAD));
|
e.enc_32_64(bound_load, rec_fldDisp32.opcodes(&MOVUPS_LOAD));
|
||||||
|
|
||||||
|
// Load complex
|
||||||
|
let bound_load_complex = load_complex.bind(vector(ty, sse_vector_size));
|
||||||
|
e.enc_32_64(
|
||||||
|
bound_load_complex.clone(),
|
||||||
|
rec_fldWithIndex.opcodes(&MOVUPS_LOAD),
|
||||||
|
);
|
||||||
|
e.enc_32_64(
|
||||||
|
bound_load_complex.clone(),
|
||||||
|
rec_fldWithIndexDisp8.opcodes(&MOVUPS_LOAD),
|
||||||
|
);
|
||||||
|
e.enc_32_64(
|
||||||
|
bound_load_complex,
|
||||||
|
rec_fldWithIndexDisp32.opcodes(&MOVUPS_LOAD),
|
||||||
|
);
|
||||||
|
|
||||||
// Spill
|
// Spill
|
||||||
let bound_spill = spill.bind(vector(ty, sse_vector_size));
|
let bound_spill = spill.bind(vector(ty, sse_vector_size));
|
||||||
e.enc_32_64(bound_spill, rec_fspillSib32.opcodes(&MOVUPS_STORE));
|
e.enc_32_64(bound_spill, rec_fspillSib32.opcodes(&MOVUPS_STORE));
|
||||||
|
|||||||
Reference in New Issue
Block a user