search for: test32rr

Displaying 7 results from an estimated 7 matches for "test32rr".

2015 Mar 18
6
[LLVMdev] string input for the integrated assembler
...ength instructions and a laborious hierarchy of tblgen AsmOperands to do the job. Assembly and disassembly with llvm-mc and llvm-objdump work fine. As a simplification, the compiler deals almost exclusively in pseudo instructions. By x86 analogy, using pseudos to unfold a TEST32rm into MOV32rm + TEST32rr means I can skip the complex operand fitting effort needed to pick specific machine instructions. There are many such examples where handling real instructions would become a gross overload. One drawback of this approach is that the integrated assembler receives only unexpanded pseudos as input,...
2014 Apr 22
2
[LLVMdev] where is F7 opcode for TEST instruction on X86?
...any hint please? thanks. let isCompare = 1 in { let Defs = [EFLAGS] in { let isCommutable = 1 in { def TEST8rr : BinOpRR_F<0x84, "test", Xi8 , X86testpat, MRMSrcReg>; def TEST16rr : BinOpRR_F<0x84, "test", Xi16, X86testpat, MRMSrcReg>; def TEST32rr : BinOpRR_F<0x84, "test", Xi32, X86testpat, MRMSrcReg>; def TEST64rr : BinOpRR_F<0x84, "test", Xi64, X86testpat, MRMSrcReg>; } // isCommutable def TEST8rm : BinOpRM_F<0x84, "test", Xi8 , X86testpat>; def TEST16rm : BinOpRM_F&lt...
2015 Mar 18
2
[LLVMdev] string input for the integrated assembler
On Tue, Mar 17, 2015 at 6:14 PM, Tim Northover <t.p.northover at gmail.com> wrote: >> As a simplification, the compiler deals almost exclusively in pseudo >> instructions. By x86 analogy, using pseudos to unfold a TEST32rm into >> MOV32rm + TEST32rr means I can skip the complex operand fitting effort >> needed to pick specific machine instructions. There are many such >> examples where handling real instructions would become a gross >> overload. >> >> One drawback of this approach is that the integrated assembler...
2007 Dec 20
1
[LLVMdev] Code Generation Problem llvm 1.9
...NOREG, -160 %EAX = MOV32rm %EBP, 1, %NOREG, -224 %EAX = ADD32ri8 %EAX, 24 %XMM0 = MOVSDrm %EBP, 1, %NOREG, -160 MOVSDmr %EBP, 1, %NOREG, -232, %XMM0 MOVSDmr %EAX, 1, %NOREG, 0, %XMM0 %EAX = CVTTSD2SIrm %ESI, 1, %NOREG, 0 %ECX = MOV32r0 TEST32rr %EAX, %EAX JNE mbb<bb.preheader.i271,0x8c55330> Successors according to CFG: 0x8c55330 0x8c573b0 The gdb disassembler gives me the following lines for that basic block __exp.exit: 0xf5f6f317: movl $0xa542b70,0xffffff20(%ebp) 0xf5f6f321: mov 0xffffff20(%ebp),%eax 0xf...
2017 Nov 13
2
Reaching definitions on Machine IR post register allocation
...ef> = MOVSX64rr32 %EDX<kill>; dbg:FastBoard.cpp:186:26 @[ > FastBoard.cpp:1938:21 ] > >                                                   . > >                                                   . > >                                                   . > > TEST32rr %ESI<kill>, %R8D<kill>, %EFLAGS<imp-def>; dbg:FastBoard.cpp:1940:10 > > JNE_1 <BB#1>, %EFLAGS<imp-use,kill>; dbg:FastBoard.cpp:1940:9 > > BB#1: > > %CL<def> = COPY %R9B<kill>, %ECX<imp-use,kill>, %ECX<imp-def>; > dbg:Fas...
2017 Nov 24
2
Reaching definitions on Machine IR post register allocation
...>>> FastBoard.cpp:1938:21 ] >>> >>> . >>> >>> . >>> >>> . >>> >>> TEST32rr %ESI<kill>, %R8D<kill>, %EFLAGS<imp-def>; >>> dbg:FastBoard.cpp:1940:10 >>> >>> JNE_1 <BB#1>, %EFLAGS<imp-use,kill>; dbg:FastBoard.cpp:1940:9 >>> >>> BB#1: >>> >>> %CL<def> = COPY %R9B<kill>, %E...
2017 Nov 01
2
Reaching definitions on Machine IR post register allocation
Hi Geoff/Krzyssztof, Wouldn't the isRenamable() change be required even for the RDF based copy propagation? Maybe Hexagon does not impose ABI/ISA restrictions which require specific registers to be used in specific contexts. Also, if Geoff's copy propagation pass is invoked post-RA wouldn't it need to handle the x86 ISA feature which allows 8 bit/16 bit values to be moved into a