Method
call4
(
&mut self,
arg1: XReg,
arg2: XReg,
arg3: XReg,
arg4: XReg,
offset: PcRelOffset,
)
Source from the content-addressed store, hash-verified
| 1391 | } |
| 1392 | |
| 1393 | fn call4( |
| 1394 | &mut self, |
| 1395 | arg1: XReg, |
| 1396 | arg2: XReg, |
| 1397 | arg3: XReg, |
| 1398 | arg4: XReg, |
| 1399 | offset: PcRelOffset, |
| 1400 | ) -> ControlFlow<Done> { |
| 1401 | let return_addr = self.pc.as_ptr(); |
| 1402 | self.state.lr = return_addr.as_ptr(); |
| 1403 | let (x0, x1, x2, x3) = ( |
| 1404 | self.state[arg1], |
| 1405 | self.state[arg2], |
| 1406 | self.state[arg3], |
| 1407 | self.state[arg4], |
| 1408 | ); |
| 1409 | self.state[XReg::x0] = x0; |
| 1410 | self.state[XReg::x1] = x1; |
| 1411 | self.state[XReg::x2] = x2; |
| 1412 | self.state[XReg::x3] = x3; |
| 1413 | self.pc_rel_jump::<crate::Call4>(offset) |
| 1414 | } |
| 1415 | |
| 1416 | fn call_indirect(&mut self, dst: XReg) -> ControlFlow<Done> { |
| 1417 | let return_addr = self.pc.as_ptr(); |
Callers
nothing calls this directly
Tested by
no test coverage detected