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

Side by Side Diff: src/IceOperand.h

Issue 372113005: Add support for passing and returning vectors in accordance with the x86 calling convention. (Closed) Base URL: https://gerrit.chromium.org/gerrit/p/native_client/pnacl-subzero.git@master
Patch Set: Reset AllowOverlap, add comment on lowerCall() strategies, and use X86_MAX_XMM_ARGS where appropria… Created 6 years, 5 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 | « src/IceInstX8632.cpp ('k') | src/IceOperand.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceOperand.h - High-level operands -----------*- C++ -*-===// 1 //===- subzero/src/IceOperand.h - High-level operands -----------*- 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 Operand class and its target-independent 10 // This file declares the Operand class and its target-independent
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 332
333 Inst *getDefinition() const { return DefInst; } 333 Inst *getDefinition() const { return DefInst; }
334 void setDefinition(Inst *Inst, const CfgNode *Node); 334 void setDefinition(Inst *Inst, const CfgNode *Node);
335 void replaceDefinition(Inst *Inst, const CfgNode *Node); 335 void replaceDefinition(Inst *Inst, const CfgNode *Node);
336 336
337 const CfgNode *getLocalUseNode() const { return DefNode; } 337 const CfgNode *getLocalUseNode() const { return DefNode; }
338 bool isMultiblockLife() const { return (DefNode == NULL); } 338 bool isMultiblockLife() const { return (DefNode == NULL); }
339 void setUse(const Inst *Inst, const CfgNode *Node); 339 void setUse(const Inst *Inst, const CfgNode *Node);
340 340
341 bool getIsArg() const { return IsArgument; } 341 bool getIsArg() const { return IsArgument; }
342 void setIsArg(Cfg *Func); 342 void setIsArg(Cfg *Func, bool IsArg = true);
343 343
344 int32_t getStackOffset() const { return StackOffset; } 344 int32_t getStackOffset() const { return StackOffset; }
345 void setStackOffset(int32_t Offset) { StackOffset = Offset; } 345 void setStackOffset(int32_t Offset) { StackOffset = Offset; }
346 346
347 static const int32_t NoRegister = -1; 347 static const int32_t NoRegister = -1;
348 bool hasReg() const { return getRegNum() != NoRegister; } 348 bool hasReg() const { return getRegNum() != NoRegister; }
349 int32_t getRegNum() const { return RegNum; } 349 int32_t getRegNum() const { return RegNum; }
350 void setRegNum(int32_t NewRegNum) { 350 void setRegNum(int32_t NewRegNum) {
351 // Regnum shouldn't be set more than once. 351 // Regnum shouldn't be set more than once.
352 assert(!hasReg() || RegNum == NewRegNum); 352 assert(!hasReg() || RegNum == NewRegNum);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 Variable *LoVar; 463 Variable *LoVar;
464 Variable *HiVar; 464 Variable *HiVar;
465 // VarsReal (and Operand::Vars) are set up such that Vars[0] == 465 // VarsReal (and Operand::Vars) are set up such that Vars[0] ==
466 // this. 466 // this.
467 Variable *VarsReal[1]; 467 Variable *VarsReal[1];
468 }; 468 };
469 469
470 } // end of namespace Ice 470 } // end of namespace Ice
471 471
472 #endif // SUBZERO_SRC_ICEOPERAND_H 472 #endif // SUBZERO_SRC_ICEOPERAND_H
OLDNEW
« no previous file with comments | « src/IceInstX8632.cpp ('k') | src/IceOperand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698