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

Side by Side Diff: src/mips/constants-mips.h

Issue 1488613007: MIPS: Correct handling of Nan values on MIPS R6 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « no previous file | src/mips/simulator-mips.h » ('j') | src/mips/simulator-mips.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_MIPS_CONSTANTS_H_ 5 #ifndef V8_MIPS_CONSTANTS_H_
6 #define V8_MIPS_CONSTANTS_H_ 6 #define V8_MIPS_CONSTANTS_H_
7 #include "src/globals.h" 7 #include "src/globals.h"
8 // UNIMPLEMENTED_ macro for MIPS. 8 // UNIMPLEMENTED_ macro for MIPS.
9 #ifdef DEBUG 9 #ifdef DEBUG
10 #define UNIMPLEMENTED_MIPS() \ 10 #define UNIMPLEMENTED_MIPS() \
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 const int kPCRegister = 34; 136 const int kPCRegister = 34;
137 137
138 // Number coprocessor registers. 138 // Number coprocessor registers.
139 const int kNumFPURegisters = 32; 139 const int kNumFPURegisters = 32;
140 const int kInvalidFPURegister = -1; 140 const int kInvalidFPURegister = -1;
141 141
142 // FPU (coprocessor 1) control registers. Currently only FCSR is implemented. 142 // FPU (coprocessor 1) control registers. Currently only FCSR is implemented.
143 const int kFCSRRegister = 31; 143 const int kFCSRRegister = 31;
144 const int kInvalidFPUControlRegister = -1; 144 const int kInvalidFPUControlRegister = -1;
145 const uint32_t kFPUInvalidResult = static_cast<uint32_t>(1 << 31) - 1; 145 const uint32_t kFPUInvalidResult = static_cast<uint32_t>(1 << 31) - 1;
146 const int32_t kFPUInvalidResultNegative = static_cast<int32_t>(1 << 31);
146 const uint64_t kFPU64InvalidResult = 147 const uint64_t kFPU64InvalidResult =
147 static_cast<uint64_t>(static_cast<uint64_t>(1) << 63) - 1; 148 static_cast<uint64_t>(static_cast<uint64_t>(1) << 63) - 1;
149 const int64_t kFPU64InvalidResultNegative =
150 static_cast<int64_t>(static_cast<uint64_t>(1) << 63);
148 151
149 // FCSR constants. 152 // FCSR constants.
150 const uint32_t kFCSRInexactFlagBit = 2; 153 const uint32_t kFCSRInexactFlagBit = 2;
151 const uint32_t kFCSRUnderflowFlagBit = 3; 154 const uint32_t kFCSRUnderflowFlagBit = 3;
152 const uint32_t kFCSROverflowFlagBit = 4; 155 const uint32_t kFCSROverflowFlagBit = 4;
153 const uint32_t kFCSRDivideByZeroFlagBit = 5; 156 const uint32_t kFCSRDivideByZeroFlagBit = 5;
154 const uint32_t kFCSRInvalidOpFlagBit = 6; 157 const uint32_t kFCSRInvalidOpFlagBit = 6;
158 const uint32_t kFCSRNaN2008FlagBit = 18;
155 159
156 const uint32_t kFCSRInexactFlagMask = 1 << kFCSRInexactFlagBit; 160 const uint32_t kFCSRInexactFlagMask = 1 << kFCSRInexactFlagBit;
157 const uint32_t kFCSRUnderflowFlagMask = 1 << kFCSRUnderflowFlagBit; 161 const uint32_t kFCSRUnderflowFlagMask = 1 << kFCSRUnderflowFlagBit;
158 const uint32_t kFCSROverflowFlagMask = 1 << kFCSROverflowFlagBit; 162 const uint32_t kFCSROverflowFlagMask = 1 << kFCSROverflowFlagBit;
159 const uint32_t kFCSRDivideByZeroFlagMask = 1 << kFCSRDivideByZeroFlagBit; 163 const uint32_t kFCSRDivideByZeroFlagMask = 1 << kFCSRDivideByZeroFlagBit;
160 const uint32_t kFCSRInvalidOpFlagMask = 1 << kFCSRInvalidOpFlagBit; 164 const uint32_t kFCSRInvalidOpFlagMask = 1 << kFCSRInvalidOpFlagBit;
165 const uint32_t kFCSRNaN2008FlagMask = 1 << kFCSRNaN2008FlagBit;
161 166
162 const uint32_t kFCSRFlagMask = 167 const uint32_t kFCSRFlagMask =
163 kFCSRInexactFlagMask | 168 kFCSRInexactFlagMask |
164 kFCSRUnderflowFlagMask | 169 kFCSRUnderflowFlagMask |
165 kFCSROverflowFlagMask | 170 kFCSROverflowFlagMask |
166 kFCSRDivideByZeroFlagMask | 171 kFCSRDivideByZeroFlagMask |
167 kFCSRInvalidOpFlagMask; 172 kFCSRInvalidOpFlagMask;
168 173
169 const uint32_t kFCSRExceptionFlagMask = kFCSRFlagMask ^ kFCSRInexactFlagMask; 174 const uint32_t kFCSRExceptionFlagMask = kFCSRFlagMask ^ kFCSRInexactFlagMask;
170 175
(...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 } 1204 }
1200 } 1205 }
1201 } 1206 }
1202 1207
1203 #undef OpcodeToBitNumber 1208 #undef OpcodeToBitNumber
1204 #undef FunctionFieldToBitNumber 1209 #undef FunctionFieldToBitNumber
1205 } // namespace internal 1210 } // namespace internal
1206 } // namespace v8 1211 } // namespace v8
1207 1212
1208 #endif // #ifndef V8_MIPS_CONSTANTS_H_ 1213 #endif // #ifndef V8_MIPS_CONSTANTS_H_
OLDNEW
« no previous file with comments | « no previous file | src/mips/simulator-mips.h » ('j') | src/mips/simulator-mips.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698