Home
last modified time | relevance | path

Searched refs:LEA (Results 1 – 25 of 45) sorted by relevance

12

/external/swiftshader/third_party/LLVM/lib/Target/X86/
DX86MCInstLower.cpp548 MCInst LEA; in LowerTlsAddr() local
550 LEA.setOpcode(X86::LEA64r); in LowerTlsAddr()
551 LEA.addOperand(MCOperand::CreateReg(X86::RDI)); // dest in LowerTlsAddr()
552 LEA.addOperand(MCOperand::CreateReg(X86::RIP)); // base in LowerTlsAddr()
553 LEA.addOperand(MCOperand::CreateImm(1)); // scale in LowerTlsAddr()
554 LEA.addOperand(MCOperand::CreateReg(0)); // index in LowerTlsAddr()
555 LEA.addOperand(MCOperand::CreateExpr(symRef)); // disp in LowerTlsAddr()
556 LEA.addOperand(MCOperand::CreateReg(0)); // seg in LowerTlsAddr()
558 LEA.setOpcode(X86::LEA32r); in LowerTlsAddr()
559 LEA.addOperand(MCOperand::CreateReg(X86::EAX)); // dest in LowerTlsAddr()
[all …]
/external/llvm/lib/Target/X86/
DX86FixupLEAs.cpp253 static inline bool isLEASimpleIncOrDec(MachineInstr &LEA) { in isLEASimpleIncOrDec() argument
254 unsigned SrcReg = LEA.getOperand(1 + X86::AddrBaseReg).getReg(); in isLEASimpleIncOrDec()
255 unsigned DstReg = LEA.getOperand(0).getReg(); in isLEASimpleIncOrDec()
258 LEA.getOperand(1 + X86::AddrIndexReg).getReg() == 0 && in isLEASimpleIncOrDec()
259 LEA.getOperand(1 + X86::AddrSegmentReg).getReg() == 0 && in isLEASimpleIncOrDec()
260 LEA.getOperand(AddrDispOp).isImm() && in isLEASimpleIncOrDec()
261 (LEA.getOperand(AddrDispOp).getImm() == 1 || in isLEASimpleIncOrDec()
262 LEA.getOperand(AddrDispOp).getImm() == -1); in isLEASimpleIncOrDec()
DX86MCInstLower.cpp725 MCInst LEA; in LowerTlsAddr() local
727 LEA.setOpcode(X86::LEA64r); in LowerTlsAddr()
728 LEA.addOperand(MCOperand::createReg(X86::RDI)); // dest in LowerTlsAddr()
729 LEA.addOperand(MCOperand::createReg(X86::RIP)); // base in LowerTlsAddr()
730 LEA.addOperand(MCOperand::createImm(1)); // scale in LowerTlsAddr()
731 LEA.addOperand(MCOperand::createReg(0)); // index in LowerTlsAddr()
732 LEA.addOperand(MCOperand::createExpr(symRef)); // disp in LowerTlsAddr()
733 LEA.addOperand(MCOperand::createReg(0)); // seg in LowerTlsAddr()
735 LEA.setOpcode(X86::LEA32r); in LowerTlsAddr()
736 LEA.addOperand(MCOperand::createReg(X86::EAX)); // dest in LowerTlsAddr()
[all …]
/external/llvm/test/CodeGen/X86/
Doverlap-shift.ll5 ;; allocator turns the shift into an LEA. This also occurs for ADD.
7 ; Check that the shift gets turned into an LEA.
Dadd-nsw-sext.ll22 ; we allow LEA formation and eliminate an add instruction.
37 ; Throw in a scale (left shift) because an LEA can do that too.
38 ; Use a negative constant (LEA displacement) to verify that's handled correctly.
123 ; LEA can't scale by 16, but the adds can still be combined into an LEA.
Datom-fixup-lea2.ll9 ; Test for fixup lea pre-emit pass. LEA instructions should be substituted for
11 ; precede the load within 5 instructions. An LEA should also be substituted for
12 ; an ADD which computes part of the index because it precedes the index LEA
Dtwoaddr-lea.ll5 ;; allocator turns the shift into an LEA. This also occurs for ADD.
7 ; Check that the shift gets turned into an LEA.
Dmul-shift-reassoc.ll5 ; Push the shl through the mul to allow an LEA to be formed, instead
D2007-02-04-OrAddrMode.ll3 ;; This example can't fold the or into an LEA.
Dlea-opt.ll97 ; Check that LEA optimization pass takes into account a resultant address
98 ; displacement when choosing a LEA instruction for replacing a redundant
120 ; Make sure the REG3's definition LEA won't be removed as redundant.
Dstack-update-frame-opcode.ll11 ; Atoms use LEA to update the SP. Opcode bitness depends on data model.
Dlea-opt-memop-check-1.ll14 ; Check that the LEA optimization pass works with CPI address displacements.
57 ; Check that the LEA optimization pass works with MCSymbol address displacements.
Dor-lea.ll6 ; LEA instruction selection should be able to see through that
84 ; The shift is too big for an LEA.
Dmerge-sp-update-lea.ll11 ; the LEA instruction.
Datom-fixup-lea1.ll7 ; Test for the FixupLEAs pre-emit pass. An LEA should be substituted for the ADD
D3addr-or.ll29 ;; Test that OR is only emitted as LEA, not as ADD.
Dcombine-multiplies.ll34 ; CHECK-NEXT: leal ([[ARG2:%[a-z]+]],[[MUL]]), [[LEA:%[a-z]+]]
35 ; CHECK-NEXT: movl $11, {{[0-9]+}}([[LEA]],[[ARG1]],4)
Datom-fixup-lea3.ll6 ; An LEA should NOT be substituted for the ADD instruction
/external/swiftshader/third_party/LLVM/test/CodeGen/X86/
Doverlap-shift.ll5 ;; allocator turns the shift into an LEA. This also occurs for ADD.
7 ; Check that the shift gets turned into an LEA.
Dtwoaddr-lea.ll5 ;; allocator turns the shift into an LEA. This also occurs for ADD.
7 ; Check that the shift gets turned into an LEA.
Dmul-shift-reassoc.ll5 ; Push the shl through the mul to allow an LEA to be formed, instead
D2007-02-04-OrAddrMode.ll3 ;; This example can't fold the or into an LEA.
D3addr-or.ll29 ;; Test that OR is only emitted as LEA, not as ADD.
D2010-06-25-CoalescerSubRegDefDead.ll21 ; statement. It can be an ADD or LEA instruction, it's not important which one
/external/swiftshader/third_party/LLVM/utils/TableGen/
DEDEmitter.cpp245 #define LEA(str) if (name == str) SET("kOperandTypeX86EffectiveAddress"); macro
314 LEA("lea32mem"); in X86TypeFromOpName()
315 LEA("lea64_32mem"); in X86TypeFromOpName()
316 LEA("lea64mem"); in X86TypeFromOpName()
339 #undef LEA

12