Binary Ninja Version
Version 2.4.2927-dev
Describe the bug
The LLIL generated for instruction movss xmm0, dword [rel 0x43bfd7] is xmm0 = [0x43bfd7].d . The right hand side [0x43bfd7].d is 32 bits in size while xmm0 is 128 bits long. [0x43bfd7].d should be zero extended to 128 bits, according to the MOVSS instruction reference
To Reproduce
Steps to reproduce the behavior:
- Generate LLIL for instruction
movss xmm0, dword [rel 0x43bfd7] (or any other address)
- See that the LLIL is
xmm0 = [0x43bfd7].d, while we rather expect: xmm0 = zx([0x43bfd7].d)
- Additionally, the python API can be used to verify that the
extend field for [0x43bfd7].d is indeed ImplicitRegisterExtend.NoExtend
Expected behavior
When the second argument of MOVSS is a m32 memory access, the loaded value should be zero extended to 128 bits to match the size of XMM* registers
Version and Platform (required):
- Binary Ninja: 2.4.2927-dev
- OS: macOS
- Version: 11.5.1
Binary Ninja Version
Version 2.4.2927-dev
Describe the bug
The LLIL generated for instruction
movss xmm0, dword [rel 0x43bfd7]isxmm0 = [0x43bfd7].d. The right hand side[0x43bfd7].dis 32 bits in size whilexmm0is 128 bits long.[0x43bfd7].dshould be zero extended to 128 bits, according to the MOVSS instruction referenceTo Reproduce
Steps to reproduce the behavior:
movss xmm0, dword [rel 0x43bfd7](or any other address)xmm0 = [0x43bfd7].d, while we rather expect:xmm0 = zx([0x43bfd7].d)extendfield for[0x43bfd7].dis indeedImplicitRegisterExtend.NoExtendExpected behavior
When the second argument of
MOVSSis am32memory access, the loaded value should be zero extended to 128 bits to match the size ofXMM*registersVersion and Platform (required):