Files
linux-kernel-module-cheat/userland/arch/x86_64/movsx.S
2019-06-21 00:00:01 +00:00

19 lines
434 B
ArmAsm

/* https://github.com/cirosantilli/linux-kernel-module-cheat#x86-data-transfer-instructions
*
* LIke MOVZX but sign extend.
*/
#include <lkmc.h>
LKMC_PROLOGUE
/* Top bit is 0, extend with zero. */
mov $0x1234567F, %eax
movsx %al, %ax
LKMC_ASSERT_EQ_32(%eax, $0x1234007F)
/* Top bit is 1: extend with one. */
mov $0x12345680, %eax
movsx %al, %ax
LKMC_ASSERT_EQ_32(%eax, $0x1234FF80)
LKMC_EPILOGUE