From 3585ee34b095e9817f5d8e315d99deafe82ecdba Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Mon, 29 Jul 2019 17:04:48 +0200 Subject: [PATCH] Uses divert.apply for all instruction within binemit. --- cranelift/codegen/meta/src/gen_binemit.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cranelift/codegen/meta/src/gen_binemit.rs b/cranelift/codegen/meta/src/gen_binemit.rs index bb75ce5409..c1bd752bc7 100644 --- a/cranelift/codegen/meta/src/gen_binemit.rs +++ b/cranelift/codegen/meta/src/gen_binemit.rs @@ -75,13 +75,9 @@ fn gen_recipe(formats: &FormatRegistry, recipe: &EncodingRecipe, fmt: &mut Forma args += &unwrap_values(&recipe.operands_out, "out", "results", fmt); } - // Special handling for regmove instructions. Update the register - // diversion tracker - match &*inst_format.name { - "RegMove" => fmt.line("divert.regmove(arg, src, dst);"), - "RegSpill" => fmt.line("divert.regspill(arg, src, dst);"), - "RegFill" => fmt.line("divert.regfill(arg, src, dst);"), - _ => {} + // Optimization: Only update the register diversion tracker for regmove instructions. + if is_regmove { + fmt.line("divert.apply(data);") } match &recipe.emit {