Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(302)

Side by Side Diff: lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/Target/ARM/CMakeLists.txt ('k') | lib/Target/ARM/LLVMBuild.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- ARMInstPrinter.cpp - Convert ARM MCInst to assembly syntax --------===// 1 //===-- ARMInstPrinter.cpp - Convert ARM MCInst to assembly syntax --------===//
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 class prints an ARM MCInst to a .s file. 10 // This class prints an ARM MCInst to a .s file.
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 (getAvailableFeatures() & ARM::FeatureVirtualization)) { 302 (getAvailableFeatures() & ARM::FeatureVirtualization)) {
303 O << "\teret"; 303 O << "\teret";
304 printPredicateOperand(MI, 1, O); 304 printPredicateOperand(MI, 1, O);
305 printAnnotation(O, Annot); 305 printAnnotation(O, Annot);
306 return; 306 return;
307 } 307 }
308 break; 308 break;
309 } 309 }
310 } 310 }
311 311
312 // @LOCALMOD-BEGIN
313 // TODO(pdox): Kill this code once we switch to MC object emission
314 const char *SFIInst = NULL;
315 unsigned SFIEmitDest = ~0;
316 unsigned SFIEmitPred = ~0;
317 switch (Opcode) {
318 case ARM::SFI_NOP_IF_AT_BUNDLE_END :
319 SFIInst = "sfi_nop_if_at_bundle_end";
320 SFIEmitDest = ~0;
321 SFIEmitPred = ~0;
322 break;
323 case ARM::SFI_GUARD_LOADSTORE :
324 SFIInst = "sfi_load_store_preamble";
325 SFIEmitDest = 0;
326 SFIEmitPred = 2;
327 break;
328 case ARM::SFI_GUARD_INDIRECT_CALL:
329 SFIInst = "sfi_indirect_call_preamble";
330 SFIEmitDest = 0;
331 SFIEmitPred = 2;
332 break;
333 case ARM::SFI_GUARD_INDIRECT_JMP :
334 SFIInst = "sfi_indirect_jump_preamble";
335 SFIEmitDest = 0;
336 SFIEmitPred = 2;
337 break;
338 case ARM::SFI_DATA_MASK :
339 SFIInst = "sfi_data_mask";
340 SFIEmitDest = 0;
341 SFIEmitPred = 2;
342 break;
343 case ARM::SFI_GUARD_LOADSTORE_TST:
344 SFIInst = "sfi_cload_store_preamble";
345 SFIEmitDest = 0;
346 SFIEmitPred = ~0;
347 break;
348 case ARM::SFI_GUARD_CALL :
349 SFIInst = "sfi_call_preamble";
350 SFIEmitDest = ~0;
351 SFIEmitPred = 0;
352 break;
353 case ARM::SFI_GUARD_RETURN :
354 SFIInst = "sfi_return_preamble lr,";
355 SFIEmitDest = ~0;
356 SFIEmitPred = 0;
357 break;
358 }
359 if (SFIInst) {
360 O << '\t' << SFIInst;
361 if (SFIEmitDest != (unsigned)~0) {
362 O << ' ';
363 printOperand(MI, SFIEmitDest, O);
364 }
365 if (SFIEmitDest != (unsigned)~0 && SFIEmitPred != (unsigned)~0) {
366 O << ',';
367 }
368 if (SFIEmitPred != (unsigned)~0) {
369 O << ' ';
370 printPredicateOperand(MI, SFIEmitPred, O);
371 }
372 O << '\n';
373 return;
374 }
375 // @LOCALMOD-END
376
312 printInstruction(MI, O); 377 printInstruction(MI, O);
313 printAnnotation(O, Annot); 378 printAnnotation(O, Annot);
314 } 379 }
315 380
316 void ARMInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, 381 void ARMInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
317 raw_ostream &O) { 382 raw_ostream &O) {
318 const MCOperand &Op = MI->getOperand(OpNo); 383 const MCOperand &Op = MI->getOperand(OpNo);
319 if (Op.isReg()) { 384 if (Op.isReg()) {
320 unsigned Reg = Op.getReg(); 385 unsigned Reg = Op.getReg();
321 printRegName(O, Reg); 386 printRegName(O, Reg);
(...skipping 1199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1521 O << "{"; 1586 O << "{";
1522 printRegName(O, MI->getOperand(OpNum).getReg()); 1587 printRegName(O, MI->getOperand(OpNum).getReg());
1523 O << ", "; 1588 O << ", ";
1524 printRegName(O, MI->getOperand(OpNum).getReg() + 2); 1589 printRegName(O, MI->getOperand(OpNum).getReg() + 2);
1525 O << ", "; 1590 O << ", ";
1526 printRegName(O, MI->getOperand(OpNum).getReg() + 4); 1591 printRegName(O, MI->getOperand(OpNum).getReg() + 4);
1527 O << ", "; 1592 O << ", ";
1528 printRegName(O, MI->getOperand(OpNum).getReg() + 6); 1593 printRegName(O, MI->getOperand(OpNum).getReg() + 6);
1529 O << "}"; 1594 O << "}";
1530 } 1595 }
OLDNEW
« no previous file with comments | « lib/Target/ARM/CMakeLists.txt ('k') | lib/Target/ARM/LLVMBuild.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698