MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / visit_global_set

Method visit_global_set

winch/codegen/src/visitor.rs:2076–2088  ·  view source on GitHub ↗
(&mut self, global_index: u32)

Source from the content-addressed store, hash-verified

2074 }
2075
2076 fn visit_global_set(&mut self, global_index: u32) -> Self::Output {
2077 let index = GlobalIndex::from_u32(global_index);
2078 let (ty, base, offset) = self.emit_get_global_addr(index)?;
2079 let addr = self.masm.address_at_reg(base, offset)?;
2080
2081 let typed_reg = self.context.pop_to_reg(self.masm, None)?;
2082 self.masm
2083 .store(typed_reg.reg.into(), addr, ty.try_into()?)?;
2084 self.context.free_reg(typed_reg.reg);
2085 self.context.free_reg(base);
2086
2087 Ok(())
2088 }
2089
2090 fn visit_drop(&mut self) -> Self::Output {
2091 self.context.drop_last(1, |regalloc, val| match val {

Callers

nothing calls this directly

Calls 7

OkFunction · 0.85
emit_get_global_addrMethod · 0.80
pop_to_regMethod · 0.80
free_regMethod · 0.80
address_at_regMethod · 0.45
storeMethod · 0.45
try_intoMethod · 0.45

Tested by

no test coverage detected