| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2015 the V8 project authors. All rights reserved. | 
|  | 2 // Use of this source code is governed by a BSD-style license that can be | 
|  | 3 // found in the LICENSE file. | 
|  | 4 | 
|  | 5 #ifndef V8_INTERPRETER_INTERPRETER_INTRINSICS_H_ | 
|  | 6 #define V8_INTERPRETER_INTERPRETER_INTRINSICS_H_ | 
|  | 7 | 
|  | 8 #include "src/allocation.h" | 
|  | 9 #include "src/base/smart-pointers.h" | 
|  | 10 #include "src/builtins.h" | 
|  | 11 #include "src/frames.h" | 
|  | 12 #include "src/interpreter/bytecodes.h" | 
|  | 13 #include "src/interpreter/interpreter-assembler.h" | 
|  | 14 #include "src/runtime/runtime.h" | 
|  | 15 | 
|  | 16 namespace v8 { | 
|  | 17 namespace internal { | 
|  | 18 | 
|  | 19 namespace compiler { | 
|  | 20 class Node; | 
|  | 21 }  // namespace compiler | 
|  | 22 | 
|  | 23 #define INTRINSICS_LIST(V)           \ | 
|  | 24   V(IsJSReceiver, is_js_receiver, 1) \ | 
|  | 25   V(IsArray, is_array, 1) | 
|  | 26 | 
|  | 27 namespace interpreter { | 
|  | 28 | 
|  | 29 class IntrinsicsHelper { | 
|  | 30  public: | 
|  | 31   explicit IntrinsicsHelper(InterpreterAssembler* assembler); | 
|  | 32 | 
|  | 33   compiler::Node* InvokeIntrinsic(compiler::Node* function_id, | 
|  | 34                                   compiler::Node* context, | 
|  | 35                                   compiler::Node* first_arg_reg, | 
|  | 36                                   compiler::Node* arg_count); | 
|  | 37 | 
|  | 38   static bool IsSupported(Runtime::FunctionId function_id); | 
|  | 39 | 
|  | 40  private: | 
|  | 41   enum InstanceTypeCompareMode { | 
|  | 42     kInstanceTypeEqual, | 
|  | 43     kInstanceTypeGreaterThanOrEqual | 
|  | 44   }; | 
|  | 45   compiler::Node* CompareInstanceType(compiler::Node* map, int type, | 
|  | 46                                       InstanceTypeCompareMode mode); | 
|  | 47   InterpreterAssembler* assembler_; | 
|  | 48 | 
|  | 49 #define DECLARE_INTRINSIC_HELPER(name, lower_case, count) \ | 
|  | 50   compiler::Node* name(compiler::Node* input); | 
|  | 51   INTRINSICS_LIST(DECLARE_INTRINSIC_HELPER) | 
|  | 52 #undef DECLARE_INTRINSIC_HELPER | 
|  | 53 | 
|  | 54   DISALLOW_COPY_AND_ASSIGN(IntrinsicsHelper); | 
|  | 55 }; | 
|  | 56 | 
|  | 57 }  // namespace interpreter | 
|  | 58 }  // namespace internal | 
|  | 59 }  // namespace v8 | 
|  | 60 | 
|  | 61 #endif | 
| OLD | NEW | 
|---|