Index: src/mips64/constants-mips64.cc |
diff --git a/src/mips64/constants-mips64.cc b/src/mips64/constants-mips64.cc |
index 11ae2421b08ef720ea066281900587734d328e46..9b497a7d9b79b56cd7a1b865f00424cf77a0cbe3 100644 |
--- a/src/mips64/constants-mips64.cc |
+++ b/src/mips64/constants-mips64.cc |
@@ -121,6 +121,46 @@ int FPURegisters::Number(const char* name) { |
// No Cregister with the reguested name found. |
return kInvalidFPURegister; |
} |
+ |
+const char* MSARegisters::names_[kNumMSARegisters] = { |
+ "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", |
+ "w11", "w12", "w13", "w14", "w15", "w16", "w17", "w18", "w19", "w20", "w21", |
+ "w22", "w23", "w24", "w25", "w26", "w27", "w28", "w29", "w30", "w31"}; |
+ |
+const MSARegisters::RegisterAlias MSARegisters::aliases_[] = { |
+ {kInvalidRegister, NULL}}; |
+ |
+const char* MSARegisters::Name(int creg) { |
+ const char* result; |
+ if ((0 <= creg) && (creg < kNumMSARegisters)) { |
+ result = names_[creg]; |
+ } else { |
+ result = "nocreg"; |
+ } |
+ return result; |
+} |
+ |
+int MSARegisters::Number(const char* name) { |
+ // Look through the canonical names. |
+ for (int i = 0; i < kNumMSARegisters; i++) { |
+ if (strcmp(names_[i], name) == 0) { |
+ return i; |
+ } |
+ } |
+ |
+ // Look through the alias names. |
+ int i = 0; |
+ while (aliases_[i].creg != kInvalidRegister) { |
+ if (strcmp(aliases_[i].name, name) == 0) { |
+ return aliases_[i].creg; |
+ } |
+ i++; |
+ } |
+ |
+ // No Cregister with the reguested name found. |
+ return kInvalidMSARegister; |
+} |
+ |
} // namespace internal |
} // namespace v8 |