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

Side by Side Diff: src/IceInstX8632.h

Issue 672393003: Subzero: Minor refactoring/additions in preparation for phi edge splitting. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Add a comment Created 6 years, 1 month 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
OLDNEW
1 //===- subzero/src/IceInstX8632.h - Low-level x86 instructions --*- C++ -*-===// 1 //===- subzero/src/IceInstX8632.h - Low-level x86 instructions --*- C++ -*-===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
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 declares the InstX8632 and OperandX8632 classes and 10 // This file declares the InstX8632 and OperandX8632 classes and
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 334
335 // Conditional and unconditional branch instruction. 335 // Conditional and unconditional branch instruction.
336 class InstX8632Br : public InstX8632 { 336 class InstX8632Br : public InstX8632 {
337 InstX8632Br(const InstX8632Br &) = delete; 337 InstX8632Br(const InstX8632Br &) = delete;
338 InstX8632Br &operator=(const InstX8632Br &) = delete; 338 InstX8632Br &operator=(const InstX8632Br &) = delete;
339 339
340 public: 340 public:
341 // Create a conditional branch to a node. 341 // Create a conditional branch to a node.
342 static InstX8632Br *create(Cfg *Func, CfgNode *TargetTrue, 342 static InstX8632Br *create(Cfg *Func, CfgNode *TargetTrue,
343 CfgNode *TargetFalse, CondX86::BrCond Condition) { 343 CfgNode *TargetFalse, CondX86::BrCond Condition) {
344 assert(Condition != CondX86::Br_None);
344 const InstX8632Label *NoLabel = NULL; 345 const InstX8632Label *NoLabel = NULL;
345 return new (Func->allocate<InstX8632Br>()) 346 return new (Func->allocate<InstX8632Br>())
346 InstX8632Br(Func, TargetTrue, TargetFalse, NoLabel, Condition); 347 InstX8632Br(Func, TargetTrue, TargetFalse, NoLabel, Condition);
347 } 348 }
348 // Create an unconditional branch to a node. 349 // Create an unconditional branch to a node.
349 static InstX8632Br *create(Cfg *Func, CfgNode *Target) { 350 static InstX8632Br *create(Cfg *Func, CfgNode *Target) {
350 const CfgNode *NoCondTarget = NULL; 351 const CfgNode *NoCondTarget = NULL;
351 const InstX8632Label *NoLabel = NULL; 352 const InstX8632Label *NoLabel = NULL;
352 return new (Func->allocate<InstX8632Br>()) 353 return new (Func->allocate<InstX8632Br>())
353 InstX8632Br(Func, NoCondTarget, Target, NoLabel, CondX86::Br_None); 354 InstX8632Br(Func, NoCondTarget, Target, NoLabel, CondX86::Br_None);
354 } 355 }
355 // Create a non-terminator conditional branch to a node, with a 356 // Create a non-terminator conditional branch to a node, with a
356 // fallthrough to the next instruction in the current node. This is 357 // fallthrough to the next instruction in the current node. This is
357 // used for switch lowering. 358 // used for switch lowering.
358 static InstX8632Br *create(Cfg *Func, CfgNode *Target, 359 static InstX8632Br *create(Cfg *Func, CfgNode *Target,
359 CondX86::BrCond Condition) { 360 CondX86::BrCond Condition) {
361 assert(Condition != CondX86::Br_None);
360 const CfgNode *NoUncondTarget = NULL; 362 const CfgNode *NoUncondTarget = NULL;
361 const InstX8632Label *NoLabel = NULL; 363 const InstX8632Label *NoLabel = NULL;
362 return new (Func->allocate<InstX8632Br>()) 364 return new (Func->allocate<InstX8632Br>())
363 InstX8632Br(Func, Target, NoUncondTarget, NoLabel, Condition); 365 InstX8632Br(Func, Target, NoUncondTarget, NoLabel, Condition);
364 } 366 }
365 // Create a conditional intra-block branch (or unconditional, if 367 // Create a conditional intra-block branch (or unconditional, if
366 // Condition==Br_None) to a label in the current block. 368 // Condition==Br_None) to a label in the current block.
367 static InstX8632Br *create(Cfg *Func, InstX8632Label *Label, 369 static InstX8632Br *create(Cfg *Func, InstX8632Label *Label,
368 CondX86::BrCond Condition) { 370 CondX86::BrCond Condition) {
369 const CfgNode *NoCondTarget = NULL; 371 const CfgNode *NoCondTarget = NULL;
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 template <> void InstX8632Pinsr::emitIAS(const Cfg *Func) const; 1546 template <> void InstX8632Pinsr::emitIAS(const Cfg *Func) const;
1545 template <> void InstX8632Movsx::emitIAS(const Cfg *Func) const; 1547 template <> void InstX8632Movsx::emitIAS(const Cfg *Func) const;
1546 template <> void InstX8632Movzx::emitIAS(const Cfg *Func) const; 1548 template <> void InstX8632Movzx::emitIAS(const Cfg *Func) const;
1547 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const; 1549 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const;
1548 template <> void InstX8632Pshufd::emitIAS(const Cfg *Func) const; 1550 template <> void InstX8632Pshufd::emitIAS(const Cfg *Func) const;
1549 template <> void InstX8632Shufps::emitIAS(const Cfg *Func) const; 1551 template <> void InstX8632Shufps::emitIAS(const Cfg *Func) const;
1550 1552
1551 } // end of namespace Ice 1553 } // end of namespace Ice
1552 1554
1553 #endif // SUBZERO_SRC_ICEINSTX8632_H 1555 #endif // SUBZERO_SRC_ICEINSTX8632_H
OLDNEW
« no previous file with comments | « src/IceInst.h ('k') | src/IceTargetLowering.h » ('j') | src/IceTargetLowering.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698