search for: lea32r

Displaying 5 results from an estimated 5 matches for "lea32r".

Did you mean: le32
2009 Nov 24
0
[LLVMdev] X86InstrInfo::GetInstSizeInBytes() calculating incorrect size
...I don't have another computer I can test this on to see if that's it though. If this turns out to be a bug, rather than some misuse/misinterpretation of the function on my part I can resubmit it via that channel. The instructions I've noticed this occurring for are: MOV32mi, LEA32r, MOV32mr, and MOV32rm The length of LEA32r is calculated correctly some of the time. Same for MOV32mr and MOV32rm. The length of MOV32mi seems to always be wrong. An example breakdown of emitted Machine Instructions - the machine instructions are those outputted when I pass the -debug o...
2009 Dec 16
1
[LLVMdev] incorrect x86 instruction size calculation
...FI validation rules by re-implementing SFI for the LLVM x86 backend based on the Google NaCl project. However, in trying to implement 32-byte code alignment, X86InstrInfo::GetInstSizeInBytes() is returning incorrect instruction sizes for certain instructions (that I have seen so far): MOV32mi, LEA32r, MOV32mr, and MOV32rm. MOV32mi is always calculated incorrectly while the remaining 3 are sometimes calculated incorrectly. Just to illustrate: 8d 9c 24 30 0a 00 00 LEA32r calculated length: 7 ok 8d 6c 24 28 LEA3...
2009 Apr 22
2
[LLVMdev] Def/Kill flags for subregisters
...sprinkle extra <imp-use,kill> here and there, like I have done above. Here is an X86 example: %EAX<def> = MOV32rm %ESP, 1, %noreg, 8, %noreg, Mem:LD(4,4) [FixedStack-2 + 0] %ECX<def> = MOV32rm %ESP, 1, %noreg, 4, %noreg, Mem:LD(4,16) [FixedStack-1 + 0] %EDX<def> = LEA32r %ECX, 1, %EAX, 0 %EDX<def> = ADD32rr %EDX, %EAX<kill>, %EFLAGS<imp-def,dead> %EAX<def> = MOVZX32rr8 %CL<kill> %EAX<def> = ADD32rr %EAX, %EDX<kill>, %EFLAGS<imp-def,dead> RET %EAX<imp-use,kill> This function defines ECX and kills CL, leaving...
2016 May 31
0
[RFC] Using segmentation to harden SafeStack
...umes that only ESP points to the safe stack at the start of each function. The pass tracks the flow of addresses derived from ESP to other registers throughout the function to determine whether any given memory operand refers to the safe stack. It assumes that only specific types of instructions (LEA32r, MOV32rr, ADD32ri8, ADD32ri) are used to compute pointers to the safe stack. It also attempts to track the flow of addresses through register spills and fills. The pass performs a single pass over each instruction in each basic block, recording information about the flow of safe stack addresses t...
2009 Apr 22
0
[LLVMdev] Def/Kill flags for subregisters
...ere and > there, like I have done above. > > Here is an X86 example: > > %EAX<def> = MOV32rm %ESP, 1, %noreg, 8, %noreg, Mem:LD(4,4) > [FixedStack-2 + 0] > %ECX<def> = MOV32rm %ESP, 1, %noreg, 4, %noreg, Mem:LD(4,16) > [FixedStack-1 + 0] > %EDX<def> = LEA32r %ECX, 1, %EAX, 0 > %EDX<def> = ADD32rr %EDX, %EAX<kill>, %EFLAGS<imp-def,dead> > %EAX<def> = MOVZX32rr8 %CL<kill> > %EAX<def> = ADD32rr %EAX, %EDX<kill>, %EFLAGS<imp-def,dead> > RET %EAX<imp-use,kill> > > This function defi...