mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-24 14:11:32 +00:00
Add workaround for singlepass miscompilation on GetLocal.
This commit is contained in:
@ -1692,8 +1692,16 @@ impl FunctionCodeGenerator<CodegenError> for X64FunctionCode {
|
|||||||
}
|
}
|
||||||
Operator::GetLocal { local_index } => {
|
Operator::GetLocal { local_index } => {
|
||||||
let local_index = local_index as usize;
|
let local_index = local_index as usize;
|
||||||
self.value_stack
|
let ret = self.machine.acquire_locations(a, &[WpType::I64], false)[0];
|
||||||
.push((self.locals[local_index], LocalOrTemp::Local));
|
Self::emit_relaxed_binop(
|
||||||
|
a,
|
||||||
|
&mut self.machine,
|
||||||
|
Assembler::emit_mov,
|
||||||
|
Size::S64,
|
||||||
|
self.locals[local_index],
|
||||||
|
ret,
|
||||||
|
);
|
||||||
|
self.value_stack.push((ret, LocalOrTemp::Temp));
|
||||||
}
|
}
|
||||||
Operator::SetLocal { local_index } => {
|
Operator::SetLocal { local_index } => {
|
||||||
let local_index = local_index as usize;
|
let local_index = local_index as usize;
|
||||||
|
Reference in New Issue
Block a user