| OLD | NEW |
| 1 //===- X86InstrInfo.cpp - X86 Instruction Information -----------*- C++ -*-===// | 1 //===- X86InstrInfo.cpp - X86 Instruction Information -----------*- C++ -*-===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file contains the X86 implementation of the TargetInstrInfo class. | 10 // This file contains the X86 implementation of the TargetInstrInfo class. |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 std::make_pair(RegOp, | 225 std::make_pair(RegOp, |
| 226 AuxInfo))).second) | 226 AuxInfo))).second) |
| 227 AmbEntries.push_back(MemOp); | 227 AmbEntries.push_back(MemOp); |
| 228 } | 228 } |
| 229 | 229 |
| 230 // If the third value is 1, then it's folding either a load or a store. | 230 // If the third value is 1, then it's folding either a load or a store. |
| 231 static const unsigned OpTbl0[][4] = { | 231 static const unsigned OpTbl0[][4] = { |
| 232 { X86::BT16ri8, X86::BT16mi8, 1, 0 }, | 232 { X86::BT16ri8, X86::BT16mi8, 1, 0 }, |
| 233 { X86::BT32ri8, X86::BT32mi8, 1, 0 }, | 233 { X86::BT32ri8, X86::BT32mi8, 1, 0 }, |
| 234 { X86::BT64ri8, X86::BT64mi8, 1, 0 }, | 234 { X86::BT64ri8, X86::BT64mi8, 1, 0 }, |
| 235 { X86::CALL32r, X86::CALL32m, 1, 0 }, | 235 // @LOCALMOD-START |
| 236 // { X86::CALL32r, X86::CALL32m, 1, 0 }, |
| 237 // @LOCALMOD-END |
| 236 { X86::CALL64r, X86::CALL64m, 1, 0 }, | 238 { X86::CALL64r, X86::CALL64m, 1, 0 }, |
| 237 { X86::CMP16ri, X86::CMP16mi, 1, 0 }, | 239 { X86::CMP16ri, X86::CMP16mi, 1, 0 }, |
| 238 { X86::CMP16ri8, X86::CMP16mi8, 1, 0 }, | 240 { X86::CMP16ri8, X86::CMP16mi8, 1, 0 }, |
| 239 { X86::CMP16rr, X86::CMP16mr, 1, 0 }, | 241 { X86::CMP16rr, X86::CMP16mr, 1, 0 }, |
| 240 { X86::CMP32ri, X86::CMP32mi, 1, 0 }, | 242 { X86::CMP32ri, X86::CMP32mi, 1, 0 }, |
| 241 { X86::CMP32ri8, X86::CMP32mi8, 1, 0 }, | 243 { X86::CMP32ri8, X86::CMP32mi8, 1, 0 }, |
| 242 { X86::CMP32rr, X86::CMP32mr, 1, 0 }, | 244 { X86::CMP32rr, X86::CMP32mr, 1, 0 }, |
| 243 { X86::CMP64ri32, X86::CMP64mi32, 1, 0 }, | 245 { X86::CMP64ri32, X86::CMP64mi32, 1, 0 }, |
| 244 { X86::CMP64ri8, X86::CMP64mi8, 1, 0 }, | 246 { X86::CMP64ri8, X86::CMP64mi8, 1, 0 }, |
| 245 { X86::CMP64rr, X86::CMP64mr, 1, 0 }, | 247 { X86::CMP64rr, X86::CMP64mr, 1, 0 }, |
| 246 { X86::CMP8ri, X86::CMP8mi, 1, 0 }, | 248 { X86::CMP8ri, X86::CMP8mi, 1, 0 }, |
| 247 { X86::CMP8rr, X86::CMP8mr, 1, 0 }, | 249 { X86::CMP8rr, X86::CMP8mr, 1, 0 }, |
| 248 { X86::DIV16r, X86::DIV16m, 1, 0 }, | 250 { X86::DIV16r, X86::DIV16m, 1, 0 }, |
| 249 { X86::DIV32r, X86::DIV32m, 1, 0 }, | 251 { X86::DIV32r, X86::DIV32m, 1, 0 }, |
| 250 { X86::DIV64r, X86::DIV64m, 1, 0 }, | 252 { X86::DIV64r, X86::DIV64m, 1, 0 }, |
| 251 { X86::DIV8r, X86::DIV8m, 1, 0 }, | 253 { X86::DIV8r, X86::DIV8m, 1, 0 }, |
| 252 { X86::EXTRACTPSrr, X86::EXTRACTPSmr, 0, 16 }, | 254 { X86::EXTRACTPSrr, X86::EXTRACTPSmr, 0, 16 }, |
| 253 { X86::FsMOVAPDrr, X86::MOVSDmr, 0, 0 }, | 255 { X86::FsMOVAPDrr, X86::MOVSDmr, 0, 0 }, |
| 254 { X86::FsMOVAPSrr, X86::MOVSSmr, 0, 0 }, | 256 { X86::FsMOVAPSrr, X86::MOVSSmr, 0, 0 }, |
| 255 { X86::IDIV16r, X86::IDIV16m, 1, 0 }, | 257 { X86::IDIV16r, X86::IDIV16m, 1, 0 }, |
| 256 { X86::IDIV32r, X86::IDIV32m, 1, 0 }, | 258 { X86::IDIV32r, X86::IDIV32m, 1, 0 }, |
| 257 { X86::IDIV64r, X86::IDIV64m, 1, 0 }, | 259 { X86::IDIV64r, X86::IDIV64m, 1, 0 }, |
| 258 { X86::IDIV8r, X86::IDIV8m, 1, 0 }, | 260 { X86::IDIV8r, X86::IDIV8m, 1, 0 }, |
| 259 { X86::IMUL16r, X86::IMUL16m, 1, 0 }, | 261 { X86::IMUL16r, X86::IMUL16m, 1, 0 }, |
| 260 { X86::IMUL32r, X86::IMUL32m, 1, 0 }, | 262 { X86::IMUL32r, X86::IMUL32m, 1, 0 }, |
| 261 { X86::IMUL64r, X86::IMUL64m, 1, 0 }, | 263 { X86::IMUL64r, X86::IMUL64m, 1, 0 }, |
| 262 { X86::IMUL8r, X86::IMUL8m, 1, 0 }, | 264 { X86::IMUL8r, X86::IMUL8m, 1, 0 }, |
| 263 { X86::JMP32r, X86::JMP32m, 1, 0 }, | 265 // @LOCALMOD-START |
| 266 //{ X86::JMP32r, X86::JMP32m, 1, 0 }, |
| 267 // @LOCALMOD-END |
| 264 { X86::JMP64r, X86::JMP64m, 1, 0 }, | 268 { X86::JMP64r, X86::JMP64m, 1, 0 }, |
| 265 { X86::MOV16ri, X86::MOV16mi, 0, 0 }, | 269 { X86::MOV16ri, X86::MOV16mi, 0, 0 }, |
| 266 { X86::MOV16rr, X86::MOV16mr, 0, 0 }, | 270 { X86::MOV16rr, X86::MOV16mr, 0, 0 }, |
| 267 { X86::MOV32ri, X86::MOV32mi, 0, 0 }, | 271 { X86::MOV32ri, X86::MOV32mi, 0, 0 }, |
| 268 { X86::MOV32rr, X86::MOV32mr, 0, 0 }, | 272 { X86::MOV32rr, X86::MOV32mr, 0, 0 }, |
| 269 { X86::MOV32rr_TC, X86::MOV32mr_TC, 0, 0 }, | 273 { X86::MOV32rr_TC, X86::MOV32mr_TC, 0, 0 }, |
| 270 { X86::MOV64ri32, X86::MOV64mi32, 0, 0 }, | 274 { X86::MOV64ri32, X86::MOV64mi32, 0, 0 }, |
| 271 { X86::MOV64rr, X86::MOV64mr, 0, 0 }, | 275 { X86::MOV64rr, X86::MOV64mr, 0, 0 }, |
| 272 { X86::MOV8ri, X86::MOV8mi, 0, 0 }, | 276 { X86::MOV8ri, X86::MOV8mi, 0, 0 }, |
| 273 { X86::MOV8rr, X86::MOV8mr, 0, 0 }, | 277 { X86::MOV8rr, X86::MOV8mr, 0, 0 }, |
| (...skipping 3367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3641 BuildMI(FirstMBB, MBBI, DL, TII->get(X86::ADD32ri), GlobalBaseReg) | 3645 BuildMI(FirstMBB, MBBI, DL, TII->get(X86::ADD32ri), GlobalBaseReg) |
| 3642 .addReg(PC).addExternalSymbol("_GLOBAL_OFFSET_TABLE_", | 3646 .addReg(PC).addExternalSymbol("_GLOBAL_OFFSET_TABLE_", |
| 3643 X86II::MO_GOT_ABSOLUTE_ADDRESS); | 3647 X86II::MO_GOT_ABSOLUTE_ADDRESS); |
| 3644 } else { | 3648 } else { |
| 3645 GlobalBaseReg = PC; | 3649 GlobalBaseReg = PC; |
| 3646 } | 3650 } |
| 3647 | 3651 |
| 3648 X86FI->setGlobalBaseReg(GlobalBaseReg); | 3652 X86FI->setGlobalBaseReg(GlobalBaseReg); |
| 3649 return GlobalBaseReg; | 3653 return GlobalBaseReg; |
| 3650 } | 3654 } |
| OLD | NEW |