Update brnz.i128 legalization to use non-extended basic blocks.

This commit is contained in:
Nicolas B. Pierron
2019-09-16 15:50:34 +02:00
committed by Nicolas B. Pierron
parent 26cfbafb32
commit 694de912a5

View File

@@ -93,6 +93,7 @@ pub(crate) fn define(insts: &InstructionGroup, imm: &Immediates) -> TransformGro
let isub_borrow = insts.by_name("isub_borrow"); let isub_borrow = insts.by_name("isub_borrow");
let isub_ifbin = insts.by_name("isub_ifbin"); let isub_ifbin = insts.by_name("isub_ifbin");
let isub_ifbout = insts.by_name("isub_ifbout"); let isub_ifbout = insts.by_name("isub_ifbout");
let jump = insts.by_name("jump");
let load = insts.by_name("load"); let load = insts.by_name("load");
let popcnt = insts.by_name("popcnt"); let popcnt = insts.by_name("popcnt");
let rotl = insts.by_name("rotl"); let rotl = insts.by_name("rotl");
@@ -189,6 +190,8 @@ pub(crate) fn define(insts: &InstructionGroup, imm: &Immediates) -> TransformGro
let ah = var("ah"); let ah = var("ah");
let cc = var("cc"); let cc = var("cc");
let ebb = var("ebb"); let ebb = var("ebb");
let ebb1 = var("ebb1");
let ebb2 = var("ebb2");
let ptr = var("ptr"); let ptr = var("ptr");
let flags = var("flags"); let flags = var("flags");
let offset = var("off"); let offset = var("off");
@@ -259,11 +262,13 @@ pub(crate) fn define(insts: &InstructionGroup, imm: &Immediates) -> TransformGro
); );
narrow.legalize( narrow.legalize(
def!(brnz.I128(x, ebb, vararg)), def!(brnz.I128(x, ebb1, vararg)),
vec![ vec![
def!((xl, xh) = isplit(x)), def!((xl, xh) = isplit(x)),
def!(brnz(xl, ebb, vararg)), def!(brnz(xl, ebb1, vararg)),
def!(brnz(xh, ebb, vararg)), def!(jump(ebb2, Literal::empty_vararg())),
ebb!(ebb2),
def!(brnz(xh, ebb1, vararg)),
], ],
); );