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

Unified Diff: src/IceInstARM32.cpp

Issue 1676123002: Subzero: Use a proper RegNumT type instead of int32_t/SizeT. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Make it possible to do "auto NewReg = RegNumT::NoRegister;" Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/IceInstARM32.h ('k') | src/IceInstX8632.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/IceInstARM32.cpp
diff --git a/src/IceInstARM32.cpp b/src/IceInstARM32.cpp
index 600658c0ff8d59f592a735d7fedb7dad96855279..9c5e4e531d89cf164c6a73f56472619ddbd0524e 100644
--- a/src/IceInstARM32.cpp
+++ b/src/IceInstARM32.cpp
@@ -888,13 +888,13 @@ void InstARM32RegisterStackOp::emitSRegsAsText(const Cfg *Func,
Ostream &Str = Func->getContext()->getStrEmit();
Str << "\t" << getSRegOpcode() << "\t{";
bool IsFirst = true;
- int32_t Base = BaseReg->getRegNum();
+ const auto Base = BaseReg->getRegNum();
for (SizeT i = 0; i < RegCount; ++i) {
if (IsFirst)
IsFirst = false;
else
Str << ", ";
- Str << RegARM32::getRegName(Base + i);
+ Str << RegARM32::getRegName(RegNumT::fixme(Base + i));
}
Str << "}";
}
@@ -914,8 +914,9 @@ namespace {
bool isAssignedConsecutiveRegisters(const Variable *Before,
const Variable *After) {
- return RegARM32::getEncodedSReg(Before->getRegNum()) + 1 ==
- RegARM32::getEncodedSReg(After->getRegNum());
+ assert(Before->hasReg());
+ assert(After->hasReg());
+ return RegNumT::fixme(Before->getRegNum() + 1) == After->getRegNum();
}
} // end of anonymous namespace
@@ -934,7 +935,8 @@ void InstARM32RegisterStackOp::emitUsingForm(const Cfg *Func,
for (SizeT i = 0; i < NumRegs; ++i) {
const Variable *Var = getStackReg(i);
assert(Var->hasReg() && "stack op only applies to registers");
- int32_t Reg = RegARM32::getEncodedGPR(Var->getRegNum());
+ const RegARM32::GPRRegister Reg =
+ RegARM32::getEncodedGPR(Var->getRegNum());
LastDest = Var;
GPRegisters |= (1 << Reg);
++IntegerCount;
@@ -1069,7 +1071,7 @@ InstARM32Mov::InstARM32Mov(Cfg *Func, Variable *Dest, Operand *Src,
// register that this instruction is accessing.
Register getDRegister(const Variable *Src, uint32_t Index) {
assert(Src->hasReg());
- const auto SrcReg = static_cast<Register>(Src->getRegNum());
+ const auto SrcReg = Src->getRegNum();
const RegARM32::RegTableType &SrcEntry = RegARM32::RegTable[SrcReg];
assert(SrcEntry.IsVec128);
@@ -1107,7 +1109,7 @@ constexpr uint32_t getDIndex(uint32_t NumElements, uint32_t Index) {
// directly from an S register. This function finds the right one.
Register getSRegister(const Variable *Src, uint32_t Index) {
assert(Src->hasReg());
- const auto SrcReg = static_cast<Register>(Src->getRegNum());
+ const auto SrcReg = Src->getRegNum();
// For floating point values, we need to be allocated to Q0 - Q7, so we can
// directly access the value we want as one of the S registers.
« no previous file with comments | « src/IceInstARM32.h ('k') | src/IceInstX8632.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698