Add Intel legalization for division and multiplication.

These operations need custom legalization in order to use Intel's div
and idiv instructions.
This commit is contained in:
Jakob Stoklund Olesen
2017-07-28 08:46:45 -07:00
parent 99d34cbbd7
commit 54534e2147
7 changed files with 134 additions and 16 deletions

View File

@@ -55,9 +55,29 @@ ebb0(v0: i32, v1: i32):
return v2
}
; function %i32_div(i32, i32) -> i32
; function %i32_rem_s(i32, i32) -> i32
; function %i32_rem_u(i32, i32) -> i32
function %i32_div_s(i32, i32) -> i32 {
ebb0(v0: i32, v1: i32):
v2 = sdiv v0, v1
return v2
}
function %i32_div_u(i32, i32) -> i32 {
ebb0(v0: i32, v1: i32):
v2 = udiv v0, v1
return v2
}
function %i32_rem_s(i32, i32) -> i32 {
ebb0(v0: i32, v1: i32):
v2 = srem v0, v1
return v2
}
function %i32_rem_u(i32, i32) -> i32 {
ebb0(v0: i32, v1: i32):
v2 = urem v0, v1
return v2
}
function %i32_and(i32, i32) -> i32 {
ebb0(v0: i32, v1: i32):