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

Unified Diff: src/IceTargetLoweringX8632Traits.h

Issue 1559243002: Suzero. X8664. NaCl Sandboxing. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Adds lit tests for the sandboxed call/ret sequences; add lit tests for the new pad_to_end bundle lo… Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: src/IceTargetLoweringX8632Traits.h
diff --git a/src/IceTargetLoweringX8632Traits.h b/src/IceTargetLoweringX8632Traits.h
index 00ea2d91cce1de6df2b2c935b27d5e3c9af07b77..e07750f18ccad24dbd241ca4034f25f6411b659c 100644
--- a/src/IceTargetLoweringX8632Traits.h
+++ b/src/IceTargetLoweringX8632Traits.h
@@ -431,6 +431,7 @@ private:
public:
static void initRegisterSet(
+ const ::Ice::ClFlags & /*Flags*/,
std::array<llvm::SmallBitVector, RCX86_NUM> *TypeToRegisterSet,
std::array<llvm::SmallBitVector, RegisterSet::Reg_NUM> *RegisterAliases,
llvm::SmallBitVector *ScratchRegs) {
@@ -522,7 +523,8 @@ public:
}
static llvm::SmallBitVector
- getRegisterSet(TargetLowering::RegSetMask Include,
+ getRegisterSet(const ::Ice::ClFlags & /*Flags*/,
+ TargetLowering::RegSetMask Include,
TargetLowering::RegSetMask Exclude) {
llvm::SmallBitVector Registers(RegisterSet::Reg_NUM);
@@ -799,9 +801,16 @@ public:
Constant *Offset, Variable *Index = nullptr,
uint16_t Shift = 0,
SegmentRegisters SegmentReg = DefaultSegment,
- bool IsPIC = false) {
+ bool IsRebased = false) {
return new (Func->allocate<X86OperandMem>()) X86OperandMem(
- Func, Ty, Base, Offset, Index, Shift, SegmentReg, IsPIC);
+ Func, Ty, Base, Offset, Index, Shift, SegmentReg, IsRebased);
+ }
+ static X86OperandMem *create(Cfg *Func, Type Ty, Variable *Base,
+ Constant *Offset, bool IsRebased) {
+ constexpr Variable *NoIndex = nullptr;
+ constexpr uint16_t NoShift = 0;
+ return new (Func->allocate<X86OperandMem>()) X86OperandMem(
+ Func, Ty, Base, Offset, NoIndex, NoShift, DefaultSegment, IsRebased);
}
Variable *getBase() const { return Base; }
Constant *getOffset() const { return Offset; }
@@ -809,10 +818,9 @@ public:
uint16_t getShift() const { return Shift; }
SegmentRegisters getSegmentRegister() const { return SegmentReg; }
void emitSegmentOverride(Assembler *Asm) const;
- void setIsPIC() { IsPIC = true; }
- bool getIsPIC() const { return IsPIC; }
- Address toAsmAddress(Assembler *Asm,
- const Ice::TargetLowering *Target) const;
+ bool getIsRebased() const { return IsRebased; }
+ Address toAsmAddress(Assembler *Asm, const Ice::TargetLowering *Target,
+ bool LeaAddr = false) const;
void emit(const Cfg *Func) const override;
using X86Operand::dump;
@@ -829,14 +837,14 @@ public:
private:
X86OperandMem(Cfg *Func, Type Ty, Variable *Base, Constant *Offset,
Variable *Index, uint16_t Shift, SegmentRegisters SegmentReg,
- bool IsPIC);
-
- Variable *Base;
- Constant *Offset;
- Variable *Index;
- uint16_t Shift;
- SegmentRegisters SegmentReg : 16;
- bool IsPIC;
+ bool IsRebased);
+
+ Variable *const Base;
+ Constant *const Offset;
+ Variable *const Index;
+ const uint16_t Shift;
+ const SegmentRegisters SegmentReg : 16;
+ const bool IsRebased;
/// A flag to show if this memory operand is a randomized one. Randomized
/// memory operands are generated in
/// TargetX86Base::randomizeOrPoolImmediate()

Powered by Google App Engine
This is Rietveld 408576698