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

Side by Side Diff: runtime/vm/constants_mips.h

Issue 14854010: On MIPS, keeps Object::null() in a register. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/assembler_mips_test.cc ('k') | runtime/vm/debugger_mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_CONSTANTS_MIPS_H_ 5 #ifndef VM_CONSTANTS_MIPS_H_
6 #define VM_CONSTANTS_MIPS_H_ 6 #define VM_CONSTANTS_MIPS_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 9
10 namespace dart { 10 namespace dart {
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 132
133 // Architecture independent aliases. 133 // Architecture independent aliases.
134 typedef FRegister FpuRegister; 134 typedef FRegister FpuRegister;
135 const FpuRegister FpuTMP = F0; 135 const FpuRegister FpuTMP = F0;
136 const int kNumberOfFpuRegisters = kNumberOfFRegisters; 136 const int kNumberOfFpuRegisters = kNumberOfFRegisters;
137 const FpuRegister kNoFpuRegister = kNoFRegister; 137 const FpuRegister kNoFpuRegister = kNoFRegister;
138 138
139 139
140 // Register aliases. 140 // Register aliases.
141 const Register TMP1 = AT; // Used as scratch register by assembler. 141 const Register TMP1 = AT; // Used as scratch register by assembler.
142 const Register TMP2 = T9; // Used as scratch register by assembler.
143 const Register TMP = TMP1; // Arch independent flow graph compiler needs a 142 const Register TMP = TMP1; // Arch independent flow graph compiler needs a
144 // Register called TMP. 143 // Register called TMP.
145 const Register CTX = S6; // Caches current context in generated code. 144 const Register CTX = S6; // Caches current context in generated code.
146 const Register PP = S7; // Caches object pool pointer in generated code. 145 const Register PP = S7; // Caches object pool pointer in generated code.
147 const Register SPREG = SP; // Stack pointer register. 146 const Register SPREG = SP; // Stack pointer register.
148 const Register FPREG = FP; // Frame pointer register. 147 const Register FPREG = FP; // Frame pointer register.
149 148
149 // NULLREG holds reinterpret_cast<intptr_t>(Object::null()).
150 // TODO(zra): Is it worthwhile to devote a register to this? Investigate
151 // performance effects when we are running on real hardware. Same with
152 // CMPRES. Try moving CTX and PP to T8 and T9 and shifting kLastCpuRegister
153 // down to S7.
154 const Register NULLREG = T8;
155
150 // The code that generates a comparison can be far away from the code that 156 // The code that generates a comparison can be far away from the code that
151 // generates the branch that uses the result of that comparison. In this case, 157 // generates the branch that uses the result of that comparison. In this case,
152 // CMPRES is used for the result of the comparison. 158 // CMPRES is used for the result of the comparison.
153 const Register CMPRES = T8; 159 const Register CMPRES = T9;
154 160
155 // Exception object is passed in this register to the catch handlers when an 161 // Exception object is passed in this register to the catch handlers when an
156 // exception is thrown. 162 // exception is thrown.
157 const Register kExceptionObjectReg = V0; 163 const Register kExceptionObjectReg = V0;
158 164
159 // Stack trace object is passed in this register to the catch handlers when 165 // Stack trace object is passed in this register to the catch handlers when
160 // an exception is thrown. 166 // an exception is thrown.
161 const Register kStackTraceObjectReg = V1; 167 const Register kStackTraceObjectReg = V1;
162 168
163 169
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 #endif // defined(DEBUG) 545 #endif // defined(DEBUG)
540 546
541 private: 547 private:
542 DISALLOW_ALLOCATION(); 548 DISALLOW_ALLOCATION();
543 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); 549 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr);
544 }; 550 };
545 551
546 } // namespace dart 552 } // namespace dart
547 553
548 #endif // VM_CONSTANTS_MIPS_H_ 554 #endif // VM_CONSTANTS_MIPS_H_
OLDNEW
« no previous file with comments | « runtime/vm/assembler_mips_test.cc ('k') | runtime/vm/debugger_mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698