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

Method visit_v128_bitselect

winch/codegen/src/visitor.rs:3532–3550  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

3530 }
3531
3532 fn visit_v128_bitselect(&mut self) -> Self::Output {
3533 let mask = self.context.pop_to_reg(self.masm, None)?;
3534 let op2 = self.context.pop_to_reg(self.masm, None)?;
3535 let op1 = self.context.pop_to_reg(self.masm, None)?;
3536 let dst = self.context.any_fpr(self.masm)?;
3537
3538 // careful here: bitselect is *not* commutative.
3539 self.masm
3540 .v128_bitselect(op1.reg, op2.reg, mask.reg, writable!(dst))?;
3541
3542 self.context
3543 .stack
3544 .push(TypedReg::new(WasmValType::V128, dst).into());
3545 self.context.free_reg(op1);
3546 self.context.free_reg(op2);
3547 self.context.free_reg(mask);
3548
3549 Ok(())
3550 }
3551
3552 fn visit_v128_any_true(&mut self) -> Self::Output {
3553 let src = self.context.pop_to_reg(self.masm, None)?;

Callers

nothing calls this directly

Calls 7

OkFunction · 0.85
pop_to_regMethod · 0.80
any_fprMethod · 0.80
free_regMethod · 0.80
newFunction · 0.50
v128_bitselectMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected