Baldrdash: uses ECX for the WasmTableCallSigReg on x86 32-bits;
This commit is contained in:
@@ -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()
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user