Baldrdash: uses ECX for the WasmTableCallSigReg on x86 32-bits;

This commit is contained in:
Benjamin Bouvier
2019-09-25 14:09:11 +02:00
parent 9f3c5b967e
commit c3d01756a3
2 changed files with 22 additions and 1 deletions

View File

@@ -120,7 +120,14 @@ impl ArgAssigner for Args {
.into(); .into();
} }
// This is SpiderMonkey's `WasmTableCallSigReg`. // This is SpiderMonkey's `WasmTableCallSigReg`.
ArgumentPurpose::SignatureId => return ArgumentLoc::Reg(RU::r10 as RegUnit).into(), ArgumentPurpose::SignatureId => {
return ArgumentLoc::Reg(if self.pointer_bits == 64 {
RU::r10
} else {
RU::rcx
} as RegUnit)
.into()
}
_ => {} _ => {}
} }
} }

View File

@@ -0,0 +1,14 @@
test compile
set probestack_enabled=false
target i686
function u0:0(i32 vmctx) baldrdash_system_v {
sig0 = (i32 vmctx, i32 sigid) baldrdash_system_v
ebb0(v0: i32):
v2 = iconst.i32 0
v8 = iconst.i32 0
v9 = iconst.i32 0
call_indirect sig0, v8(v9, v2)
trap user0
}