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

Unified Diff: src/IceInstX86BaseImpl.h

Issue 1411583007: Combine allocas (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix a typo. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: src/IceInstX86BaseImpl.h
diff --git a/src/IceInstX86BaseImpl.h b/src/IceInstX86BaseImpl.h
index e109bf2a3350cfab526e87ce517f9411ecf908a5..6494f10c5254156a89bdbd5bf04449a9f7b3bc8c 100644
--- a/src/IceInstX86BaseImpl.h
+++ b/src/IceInstX86BaseImpl.h
@@ -601,7 +601,7 @@ void InstX86Call<Machine>::emitIAS(const Cfg *Func) const {
Target)) {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
- Asm->call(Mem->toAsmAddress(Asm));
+ Asm->call(Mem->toAsmAddress(Asm, Func->getTarget()));
} else if (const auto *CR = llvm::dyn_cast<ConstantRelocatable>(Target)) {
assert(CR->getOffset() == 0 && "We only support calling a function");
Asm->call(CR);
@@ -669,7 +669,7 @@ void emitIASOpTyGPR(const Cfg *Func, Type Ty, const Operand *Op,
} else if (const auto *Mem = llvm::dyn_cast<
typename InstX86Base<Machine>::Traits::X86OperandMem>(Op)) {
Mem->emitSegmentOverride(Asm);
- (Asm->*(Emitter.Addr))(Ty, Mem->toAsmAddress(Asm));
+ (Asm->*(Emitter.Addr))(Ty, Mem->toAsmAddress(Asm, Func->getTarget()));
} else {
llvm_unreachable("Unexpected operand type");
}
@@ -706,7 +706,8 @@ void emitIASRegOpTyGPR(
} else if (const auto *Mem = llvm::dyn_cast<
typename InstX86Base<Machine>::Traits::X86OperandMem>(Src)) {
Mem->emitSegmentOverride(Asm);
- (Asm->*(Emitter.GPRAddr))(Ty, VarReg, Mem->toAsmAddress(Asm));
+ (Asm->*(Emitter.GPRAddr))(Ty, VarReg,
+ Mem->toAsmAddress(Asm, Func->getTarget()));
} else if (const auto *Imm = llvm::dyn_cast<ConstantInteger32>(Src)) {
(Asm->*(Emitter.GPRImm))(Ty, VarReg, Immediate(Imm->getValue()));
} else if (const auto *Reloc = llvm::dyn_cast<ConstantRelocatable>(Src)) {
@@ -764,8 +765,8 @@ void emitIASAsAddrOpTyGPR(
typename InstX86Base<Machine>::Traits::Assembler *Asm =
Func->getAssembler<typename InstX86Base<Machine>::Traits::Assembler>();
Op0Mem->emitSegmentOverride(Asm);
- emitIASAddrOpTyGPR<Machine>(Func, Ty, Op0Mem->toAsmAddress(Asm), Op1,
- Emitter);
+ emitIASAddrOpTyGPR<Machine>(
+ Func, Ty, Op0Mem->toAsmAddress(Asm, Func->getTarget()), Op1, Emitter);
} else if (const auto *Split = llvm::dyn_cast<
typename InstX86Base<Machine>::Traits::VariableSplit>(Op0)) {
emitIASAddrOpTyGPR<Machine>(Func, Ty, Split->toAsmAddress(Func), Op1,
@@ -856,7 +857,8 @@ void emitIASXmmShift(
typename InstX86Base<Machine>::Traits::X86OperandMem>(Src)) {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
- (Asm->*(Emitter.XmmAddr))(Ty, VarReg, Mem->toAsmAddress(Asm));
+ (Asm->*(Emitter.XmmAddr))(Ty, VarReg,
+ Mem->toAsmAddress(Asm, Func->getTarget()));
} else if (const auto *Imm = llvm::dyn_cast<ConstantInteger32>(Src)) {
(Asm->*(Emitter.XmmImm))(Ty, VarReg, Immediate(Imm->getValue()));
} else {
@@ -890,7 +892,8 @@ void emitIASRegOpTyXMM(
typename InstX86Base<Machine>::Traits::X86OperandMem>(Src)) {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
- (Asm->*(Emitter.XmmAddr))(Ty, VarReg, Mem->toAsmAddress(Asm));
+ (Asm->*(Emitter.XmmAddr))(Ty, VarReg,
+ Mem->toAsmAddress(Asm, Func->getTarget()));
} else if (const auto *Imm = llvm::dyn_cast<Constant>(Src)) {
(Asm->*(Emitter.XmmAddr))(
Ty, VarReg,
@@ -924,7 +927,8 @@ void emitIASCastRegOp(const Cfg *Func, Type DestTy, const Variable *Dest,
} else if (const auto *Mem = llvm::dyn_cast<
typename InstX86Base<Machine>::Traits::X86OperandMem>(Src)) {
Mem->emitSegmentOverride(Asm);
- (Asm->*(Emitter.RegAddr))(DestTy, DestReg, SrcTy, Mem->toAsmAddress(Asm));
+ (Asm->*(Emitter.RegAddr))(DestTy, DestReg, SrcTy,
+ Mem->toAsmAddress(Asm, Func->getTarget()));
} else {
llvm_unreachable("Unexpected operand type");
}
@@ -957,8 +961,8 @@ void emitIASThreeOpImmOps(
} else if (const auto *Mem = llvm::dyn_cast<
typename InstX86Base<Machine>::Traits::X86OperandMem>(Src0)) {
Mem->emitSegmentOverride(Asm);
- (Asm->*(Emitter.RegAddrImm))(DispatchTy, DestReg, Mem->toAsmAddress(Asm),
- Imm);
+ (Asm->*(Emitter.RegAddrImm))(
+ DispatchTy, DestReg, Mem->toAsmAddress(Asm, Func->getTarget()), Imm);
} else {
llvm_unreachable("Unexpected operand type");
}
@@ -990,7 +994,8 @@ void emitIASMovlikeXMM(
typename InstX86Base<Machine>::Traits::X86OperandMem>(Src)) {
assert(SrcMem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
- (Asm->*(Emitter.XmmAddr))(DestReg, SrcMem->toAsmAddress(Asm));
+ (Asm->*(Emitter.XmmAddr))(DestReg,
+ SrcMem->toAsmAddress(Asm, Func->getTarget()));
} else {
llvm_unreachable("Unexpected operand type");
}
@@ -1625,7 +1630,7 @@ void InstX86Cmov<Machine>::emitIAS(const Cfg *Func) const {
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
Asm->cmov(SrcTy, Condition, InstX86Base<Machine>::Traits::getEncodedGPR(
this->getDest()->getRegNum()),
- Mem->toAsmAddress(Asm));
+ Mem->toAsmAddress(Asm, Func->getTarget()));
} else {
llvm_unreachable("Unexpected operand type");
}
@@ -1730,7 +1735,7 @@ void InstX86Cmpxchg<Machine>::emitIAS(const Cfg *Func) const {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
const typename InstX86Base<Machine>::Traits::Address Addr =
- Mem->toAsmAddress(Asm);
+ Mem->toAsmAddress(Asm, Func->getTarget());
const auto *VarReg = llvm::cast<Variable>(this->getSrc(2));
assert(VarReg->hasReg());
const typename InstX86Base<Machine>::Traits::RegisterSet::GPRRegister Reg =
@@ -1774,7 +1779,7 @@ void InstX86Cmpxchg8b<Machine>::emitIAS(const Cfg *Func) const {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
const typename InstX86Base<Machine>::Traits::Address Addr =
- Mem->toAsmAddress(Asm);
+ Mem->toAsmAddress(Asm, Func->getTarget());
Asm->cmpxchg8b(Addr, this->Locked);
}
@@ -2127,7 +2132,7 @@ void InstX86Store<Machine>::emitIAS(const Cfg *Func) const {
Dest);
assert(DestMem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
- Asm->movss(DestTy, DestMem->toAsmAddress(Asm), SrcReg);
+ Asm->movss(DestTy, DestMem->toAsmAddress(Asm, Func->getTarget()), SrcReg);
}
return;
} else {
@@ -2176,7 +2181,7 @@ void InstX86StoreP<Machine>::emitIAS(const Cfg *Func) const {
assert(DestMem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
assert(SrcVar->hasReg());
- Asm->movups(DestMem->toAsmAddress(Asm),
+ Asm->movups(DestMem->toAsmAddress(Asm, Func->getTarget()),
InstX86Base<Machine>::Traits::getEncodedXmm(SrcVar->getRegNum()));
}
@@ -2218,7 +2223,7 @@ void InstX86StoreQ<Machine>::emitIAS(const Cfg *Func) const {
assert(DestMem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
assert(SrcVar->hasReg());
- Asm->movq(DestMem->toAsmAddress(Asm),
+ Asm->movq(DestMem->toAsmAddress(Asm, Func->getTarget()),
InstX86Base<Machine>::Traits::getEncodedXmm(SrcVar->getRegNum()));
}
@@ -2625,7 +2630,7 @@ void InstX86Fld<Machine>::emitIAS(const Cfg *Func) const {
typename InstX86Base<Machine>::Traits::X86OperandMem>(Src)) {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
- Asm->fld(Ty, Mem->toAsmAddress(Asm));
+ Asm->fld(Ty, Mem->toAsmAddress(Asm, Func->getTarget()));
} else if (const auto *Imm = llvm::dyn_cast<Constant>(Src)) {
Asm->fld(Ty, InstX86Base<Machine>::Traits::Address::ofConstPool(Asm, Imm));
} else {
@@ -3149,7 +3154,7 @@ void InstX86Xadd<Machine>::emitIAS(const Cfg *Func) const {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
const typename InstX86Base<Machine>::Traits::Address Addr =
- Mem->toAsmAddress(Asm);
+ Mem->toAsmAddress(Asm, Func->getTarget());
const auto *VarReg = llvm::cast<Variable>(this->getSrc(1));
assert(VarReg->hasReg());
const typename InstX86Base<Machine>::Traits::RegisterSet::GPRRegister Reg =
@@ -3206,7 +3211,7 @@ void InstX86Xchg<Machine>::emitIAS(const Cfg *Func) const {
assert(Mem->getSegmentRegister() ==
InstX86Base<Machine>::Traits::X86OperandMem::DefaultSegment);
const typename InstX86Base<Machine>::Traits::Address Addr =
- Mem->toAsmAddress(Asm);
+ Mem->toAsmAddress(Asm, Func->getTarget());
Asm->xchg(Ty, Addr, Reg1);
}

Powered by Google App Engine
This is Rietveld 408576698