Add a DynRex recipe type for x86, decreasing the number of recipes (#1298)

This patch adds a third mode for templates: REX inference is requestable
at template instantiation time. This reduces the number of recipes
by removing rex()/nonrex() redundancy for many instructions.
This commit is contained in:
Sean Stangl
2019-12-19 15:49:34 -07:00
committed by GitHub
parent b486289ab8
commit cf9e762f16
13 changed files with 875 additions and 514 deletions

View File

@@ -4,7 +4,7 @@ target x86_64
function %test_multiple_uses(i32 [%rdi]) -> i32 {
ebb0(v0: i32 [%rdi]):
[Op1rcmp_ib#7083,%rflags] v3 = ifcmp_imm v0, 0
[DynRexOp1rcmp_ib#7083,%rflags] v3 = ifcmp_imm v0, 0
[Op2seti_abcd#490,%rax] v1 = trueif eq v3
[RexOp2urm_noflags#4b6,%rax] v2 = bint.i32 v1
[Op1brib#70] brif eq v3, ebb1