Add x86 encodings for vector copy, copy_nop, fill_nop

This commit is contained in:
Andrew Brown
2019-09-11 11:44:29 -07:00
parent 766cf8ddfd
commit fe25abeb0d

View File

@@ -1992,11 +1992,19 @@ pub(crate) fn define(
e.enc_32_64(bound_fill, rec_fillSib32.opcodes(vec![0x0f, 0x10])); e.enc_32_64(bound_fill, rec_fillSib32.opcodes(vec![0x0f, 0x10]));
let bound_regfill = regfill.bind_vector_from_lane(ty, sse_vector_size); let bound_regfill = regfill.bind_vector_from_lane(ty, sse_vector_size);
e.enc_32_64(bound_regfill, rec_fregfill32.opcodes(vec![0x0f, 0x10])); e.enc_32_64(bound_regfill, rec_fregfill32.opcodes(vec![0x0f, 0x10]));
let bound_fill_nop = fill_nop.bind_vector_from_lane(ty, sse_vector_size);
e.enc_32_64_rec(bound_fill_nop, rec_ffillnull, 0);
// Regmove // Regmove
let bound_regmove = regmove.bind_vector_from_lane(ty, sse_vector_size); let bound_regmove = regmove.bind_vector_from_lane(ty, sse_vector_size);
e.enc_32_64(bound_regmove.clone(), rec_rmov.opcodes(vec![0x0f, 0x28])); e.enc_32_64(bound_regmove.clone(), rec_rmov.opcodes(vec![0x0f, 0x28]));
e.enc_32_64(bound_regmove, rec_frmov.opcodes(vec![0x0f, 0x28])); e.enc_32_64(bound_regmove, rec_frmov.opcodes(vec![0x0f, 0x28]));
// Copy
let bound_copy = copy.bind_vector_from_lane(ty, sse_vector_size);
e.enc_32_64(bound_copy, rec_furm.opcodes(vec![0x0f, 0x28])); // MOVAPS from SSE
let bound_copy_nop = copy_nop.bind_vector_from_lane(ty, sse_vector_size);
e.enc_32_64_rec(bound_copy_nop, rec_stacknull, 0);
} }
// SIMD integer addition // SIMD integer addition