A common implementation for zero-extend stack loads.
(
&mut self,
src: Address,
dst: WritableReg,
size: OperandSize,
flags: MemFlagsData,
)
| 3363 | |
| 3364 | /// A common implementation for zero-extend stack loads. |
| 3365 | fn load_impl( |
| 3366 | &mut self, |
| 3367 | src: Address, |
| 3368 | dst: WritableReg, |
| 3369 | size: OperandSize, |
| 3370 | flags: MemFlagsData, |
| 3371 | ) -> Result<()> { |
| 3372 | if dst.to_reg().is_int() { |
| 3373 | let ext = size.extend_to::<Zero>(OperandSize::S64); |
| 3374 | self.asm.movzx_mr(&src, dst, ext, flags); |
| 3375 | } else { |
| 3376 | self.asm.xmm_mov_mr(&src, dst, size, flags); |
| 3377 | } |
| 3378 | |
| 3379 | Ok(()) |
| 3380 | } |
| 3381 | |
| 3382 | /// A common implementation for stack stores. |
| 3383 | fn store_impl( |