DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (b6d82b1a6b02)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: set ts=8 sts=2 et sw=2 tw=80:
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef jit_BaselineICList_h
#define jit_BaselineICList_h

namespace js {
namespace jit {

// List of Baseline IC stub kinds. The stub kind determines the structure of the
// ICStub data.
#define IC_BASELINE_STUB_KIND_LIST(_) \
  _(WarmUpCounter_Fallback)           \
                                      \
  _(TypeMonitor_Fallback)             \
  _(TypeMonitor_SingleObject)         \
  _(TypeMonitor_ObjectGroup)          \
  _(TypeMonitor_PrimitiveSet)         \
  _(TypeMonitor_AnyValue)             \
                                      \
  _(TypeUpdate_Fallback)              \
  _(TypeUpdate_SingleObject)          \
  _(TypeUpdate_ObjectGroup)           \
  _(TypeUpdate_PrimitiveSet)          \
  _(TypeUpdate_AnyValue)              \
                                      \
  _(NewArray_Fallback)                \
  _(NewObject_Fallback)               \
                                      \
  _(ToBool_Fallback)                  \
                                      \
  _(UnaryArith_Fallback)              \
                                      \
  _(Call_Fallback)                    \
                                      \
  _(GetElem_Fallback)                 \
  _(SetElem_Fallback)                 \
                                      \
  _(In_Fallback)                      \
  _(HasOwn_Fallback)                  \
                                      \
  _(GetName_Fallback)                 \
                                      \
  _(BindName_Fallback)                \
                                      \
  _(GetIntrinsic_Fallback)            \
                                      \
  _(SetProp_Fallback)                 \
                                      \
  _(GetIterator_Fallback)             \
                                      \
  _(InstanceOf_Fallback)              \
                                      \
  _(TypeOf_Fallback)                  \
                                      \
  _(Rest_Fallback)                    \
                                      \
  _(BinaryArith_Fallback)             \
                                      \
  _(Compare_Fallback)                 \
                                      \
  _(GetProp_Fallback)                 \
                                      \
  _(CacheIR_Regular)                  \
  _(CacheIR_Monitored)                \
  _(CacheIR_Updated)

// List of fallback trampolines. Each of these fallback trampolines exists as
// part of the JitRuntime. Note that some fallback stubs in previous list may
// have multiple trampolines in this list. For example, Call_Fallback has
// constructing/spread variants here with different calling conventions needing
// different trampolines.
#define IC_BASELINE_FALLBACK_CODE_KIND_LIST(_) \
  _(WarmUpCounter)                             \
  _(TypeMonitor)                               \
  _(TypeUpdate)                                \
  _(NewArray)                                  \
  _(NewObject)                                 \
  _(ToBool)                                    \
  _(UnaryArith)                                \
  _(Call)                                      \
  _(CallConstructing)                          \
  _(SpreadCall)                                \
  _(SpreadCallConstructing)                    \
  _(GetElem)                                   \
  _(GetElemSuper)                              \
  _(SetElem)                                   \
  _(In)                                        \
  _(HasOwn)                                    \
  _(GetName)                                   \
  _(BindName)                                  \
  _(GetIntrinsic)                              \
  _(SetProp)                                   \
  _(GetIterator)                               \
  _(InstanceOf)                                \
  _(TypeOf)                                    \
  _(Rest)                                      \
  _(BinaryArith)                               \
  _(Compare)                                   \
  _(GetProp)                                   \
  _(GetPropSuper)

}  // namespace jit
}  // namespace js

#endif /* jit_BaselineICList_h */