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#include "src/interpreter/interpreter-intrinsics.h"
6
7#include "src/base/logging.h"
8
9namespace v8 {
10namespace internal {
11namespace interpreter {
12
13// static
14bool IntrinsicsHelper::IsSupported(Runtime::FunctionId function_id) {
15  switch (function_id) {
16#define SUPPORTED(name, lower_case, count) case Runtime::kInline##name:
17    INTRINSICS_LIST(SUPPORTED)
18    return true;
19#undef SUPPORTED
20    default:
21      return false;
22  }
23}
24
25// static
26IntrinsicsHelper::IntrinsicId IntrinsicsHelper::FromRuntimeId(
27    Runtime::FunctionId function_id) {
28  switch (function_id) {
29#define TO_RUNTIME_ID(name, lower_case, count) \
30  case Runtime::kInline##name:                 \
31    return IntrinsicId::k##name;
32    INTRINSICS_LIST(TO_RUNTIME_ID)
33#undef TO_RUNTIME_ID
34    default:
35      UNREACHABLE();
36  }
37}
38
39// static
40Runtime::FunctionId IntrinsicsHelper::ToRuntimeId(
41    IntrinsicsHelper::IntrinsicId intrinsic_id) {
42  switch (intrinsic_id) {
43#define TO_INTRINSIC_ID(name, lower_case, count) \
44  case IntrinsicId::k##name:                     \
45    return Runtime::kInline##name;
46    INTRINSICS_LIST(TO_INTRINSIC_ID)
47#undef TO_INTRINSIC_ID
48    default:
49      UNREACHABLE();
50  }
51}
52
53}  // namespace interpreter
54}  // namespace internal
55}  // namespace v8
56