cranelift: add i64.[us]{div,rem} libcalls.

These libcalls are useful for 32-bit platforms.
This commit is contained in:
whitequark
2020-05-22 07:32:22 +00:00
parent 26ee986c2f
commit b2e8ed4dc9
5 changed files with 78 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
; Test basic code generation for i64 arithmetic WebAssembly instructions
; on 32-bit platforms.
test compile
target i686 baseline
; Binary operations.
function %i64_div_s(i64, i64) -> i64 {
block0(v0: i64, v1: i64):
v2 = sdiv v0, v1
return v2
}
function %i64_div_u(i64, i64) -> i64 {
block0(v0: i64, v1: i64):
v2 = udiv v0, v1
return v2
}
function %i64_rem_s(i64, i64) -> i64 {
block0(v0: i64, v1: i64):
v2 = srem v0, v1
return v2
}
function %i64_rem_u(i64, i64) -> i64 {
block0(v0: i64, v1: i64):
v2 = urem v0, v1
return v2
}