Add x86 recipe for vconst

This commit is contained in:
Andrew Brown
2019-07-23 11:04:11 -07:00
committed by Dan Gohman
parent 407d24c013
commit 684721ca29
2 changed files with 23 additions and 1 deletions

View File

@@ -399,6 +399,7 @@ pub fn define<'shared>(
let f_unary_ieee32 = formats.by_name("UnaryIeee32");
let f_unary_ieee64 = formats.by_name("UnaryIeee64");
let f_unary_imm = formats.by_name("UnaryImm");
let f_unary_imm128 = formats.by_name("UnaryImm128");
// Predicates shorthands.
let use_sse41 = settings.predicate_by_name("use_sse41");
@@ -2382,6 +2383,19 @@ pub fn define<'shared>(
),
);
recipes.add_template_recipe(
EncodingRecipeBuilder::new("vconst", f_unary_imm128, 5)
.operands_out(vec![fpr])
.clobbers_flags(false)
.emit(
r#"
{{PUT_OP}}(bits, rex2(0, out_reg0), sink);
modrm_riprel(out_reg0, sink);
const_disp4(imm, func, sink);
"#,
),
);
recipes.add_template_recipe(
EncodingRecipeBuilder::new("jt_base", f_branch_table_base, 5)
.operands_out(vec![gpr])