| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_COMPILER_REPRESENTATION_CHANGE_H_ | 5 #ifndef V8_COMPILER_REPRESENTATION_CHANGE_H_ |
| 6 #define V8_COMPILER_REPRESENTATION_CHANGE_H_ | 6 #define V8_COMPILER_REPRESENTATION_CHANGE_H_ |
| 7 | 7 |
| 8 #include "src/base/bits.h" | 8 #include "src/base/bits.h" |
| 9 #include "src/compiler/js-graph.h" | 9 #include "src/compiler/js-graph.h" |
| 10 #include "src/compiler/machine-operator.h" | 10 #include "src/compiler/machine-operator.h" |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 // Can't really convert Word64 to anything else. Purported to be internal. | 228 // Can't really convert Word64 to anything else. Purported to be internal. |
| 229 return TypeError(node, output_type, kRepWord64); | 229 return TypeError(node, output_type, kRepWord64); |
| 230 } | 230 } |
| 231 | 231 |
| 232 const Operator* Int32OperatorFor(IrOpcode::Value opcode) { | 232 const Operator* Int32OperatorFor(IrOpcode::Value opcode) { |
| 233 switch (opcode) { | 233 switch (opcode) { |
| 234 case IrOpcode::kNumberAdd: | 234 case IrOpcode::kNumberAdd: |
| 235 return machine()->Int32Add(); | 235 return machine()->Int32Add(); |
| 236 case IrOpcode::kNumberSubtract: | 236 case IrOpcode::kNumberSubtract: |
| 237 return machine()->Int32Sub(); | 237 return machine()->Int32Sub(); |
| 238 case IrOpcode::kNumberMultiply: |
| 239 return machine()->Int32Mul(); |
| 240 case IrOpcode::kNumberDivide: |
| 241 return machine()->Int32Div(); |
| 242 case IrOpcode::kNumberModulus: |
| 243 return machine()->Int32Mod(); |
| 238 case IrOpcode::kNumberEqual: | 244 case IrOpcode::kNumberEqual: |
| 239 return machine()->Word32Equal(); | 245 return machine()->Word32Equal(); |
| 240 case IrOpcode::kNumberLessThan: | 246 case IrOpcode::kNumberLessThan: |
| 241 return machine()->Int32LessThan(); | 247 return machine()->Int32LessThan(); |
| 242 case IrOpcode::kNumberLessThanOrEqual: | 248 case IrOpcode::kNumberLessThanOrEqual: |
| 243 return machine()->Int32LessThanOrEqual(); | 249 return machine()->Int32LessThanOrEqual(); |
| 244 default: | 250 default: |
| 245 UNREACHABLE(); | 251 UNREACHABLE(); |
| 246 return NULL; | 252 return NULL; |
| 247 } | 253 } |
| 248 } | 254 } |
| 249 | 255 |
| 250 const Operator* Uint32OperatorFor(IrOpcode::Value opcode) { | 256 const Operator* Uint32OperatorFor(IrOpcode::Value opcode) { |
| 251 switch (opcode) { | 257 switch (opcode) { |
| 252 case IrOpcode::kNumberAdd: | 258 case IrOpcode::kNumberAdd: |
| 253 return machine()->Int32Add(); | 259 return machine()->Int32Add(); |
| 254 case IrOpcode::kNumberSubtract: | 260 case IrOpcode::kNumberSubtract: |
| 255 return machine()->Int32Sub(); | 261 return machine()->Int32Sub(); |
| 262 case IrOpcode::kNumberMultiply: |
| 263 return machine()->Int32Mul(); |
| 264 case IrOpcode::kNumberDivide: |
| 265 return machine()->Int32UDiv(); |
| 266 case IrOpcode::kNumberModulus: |
| 267 return machine()->Int32UMod(); |
| 256 case IrOpcode::kNumberEqual: | 268 case IrOpcode::kNumberEqual: |
| 257 return machine()->Word32Equal(); | 269 return machine()->Word32Equal(); |
| 258 case IrOpcode::kNumberLessThan: | 270 case IrOpcode::kNumberLessThan: |
| 259 return machine()->Uint32LessThan(); | 271 return machine()->Uint32LessThan(); |
| 260 case IrOpcode::kNumberLessThanOrEqual: | 272 case IrOpcode::kNumberLessThanOrEqual: |
| 261 return machine()->Uint32LessThanOrEqual(); | 273 return machine()->Uint32LessThanOrEqual(); |
| 262 default: | 274 default: |
| 263 UNREACHABLE(); | 275 UNREACHABLE(); |
| 264 return NULL; | 276 return NULL; |
| 265 } | 277 } |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 JSGraph* jsgraph() { return jsgraph_; } | 351 JSGraph* jsgraph() { return jsgraph_; } |
| 340 Isolate* isolate() { return isolate_; } | 352 Isolate* isolate() { return isolate_; } |
| 341 SimplifiedOperatorBuilder* simplified() { return simplified_; } | 353 SimplifiedOperatorBuilder* simplified() { return simplified_; } |
| 342 MachineOperatorBuilder* machine() { return jsgraph()->machine(); } | 354 MachineOperatorBuilder* machine() { return jsgraph()->machine(); } |
| 343 }; | 355 }; |
| 344 } | 356 } |
| 345 } | 357 } |
| 346 } // namespace v8::internal::compiler | 358 } // namespace v8::internal::compiler |
| 347 | 359 |
| 348 #endif // V8_COMPILER_REPRESENTATION_CHANGE_H_ | 360 #endif // V8_COMPILER_REPRESENTATION_CHANGE_H_ |
| OLD | NEW |