V8 Project
simulator-x64.h
Go to the documentation of this file.
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
3
// found in the LICENSE file.
4
5
#ifndef V8_X64_SIMULATOR_X64_H_
6
#define V8_X64_SIMULATOR_X64_H_
7
8
#include "
src/allocation.h
"
9
10
namespace
v8
{
11
namespace
internal {
12
13
// Since there is no simulator for the x64 architecture the only thing we can
14
// do is to call the entry directly.
15
// TODO(X64): Don't pass p0, since it isn't used?
16
#define CALL_GENERATED_CODE(entry, p0, p1, p2, p3, p4) \
17
(entry(p0, p1, p2, p3, p4))
18
19
typedef
int
(*
regexp_matcher
)(String*,
int
,
const
byte
*,
20
const
byte
*,
int
*,
int
,
Address
,
int
, Isolate*);
21
22
// Call the generated regexp code directly. The code at the entry address should
23
// expect eight int/pointer sized arguments and return an int.
24
#define CALL_GENERATED_REGEXP_CODE(entry, p0, p1, p2, p3, p4, p5, p6, p7, p8) \
25
(FUNCTION_CAST<regexp_matcher>(entry)(p0, p1, p2, p3, p4, p5, p6, p7, p8))
26
27
// The stack limit beyond which we will throw stack overflow errors in
28
// generated code. Because generated code on x64 uses the C stack, we
29
// just use the C stack limit.
30
class
SimulatorStack :
public
v8::internal::AllStatic
{
31
public
:
32
static
inline
uintptr_t
JsLimitFromCLimit
(
Isolate
* isolate,
33
uintptr_t
c_limit) {
34
return
c_limit;
35
}
36
37
static
inline
uintptr_t
RegisterCTryCatch
(
uintptr_t
try_catch_address) {
38
return
try_catch_address;
39
}
40
41
static
inline
void
UnregisterCTryCatch
() { }
42
};
43
44
} }
// namespace v8::internal
45
46
#endif
// V8_X64_SIMULATOR_X64_H_
allocation.h
int
uintptr_t
v8::internal::AllStatic
Definition:
allocation.h:50
v8::internal::Isolate
Definition:
isolate.h:395
v8::internal::SimulatorStack::JsLimitFromCLimit
static uintptr_t JsLimitFromCLimit(Isolate *isolate, uintptr_t c_limit)
Definition:
simulator-x64.h:32
v8::internal::SimulatorStack::UnregisterCTryCatch
static void UnregisterCTryCatch()
Definition:
simulator-x64.h:41
v8::internal::SimulatorStack::RegisterCTryCatch
static uintptr_t RegisterCTryCatch(uintptr_t try_catch_address)
Definition:
simulator-x64.h:37
v8::internal::Address
byte * Address
Definition:
globals.h:101
v8::internal::regexp_matcher
int(* regexp_matcher)(String *, int, const byte *, const byte *, int *, int, Address, int, Isolate *)
Definition:
simulator-ia32.h:19
v8
Debugger support for the V8 JavaScript engine.
Definition:
accessors.cc:20
mnt
V8SourceCode
src
x64
simulator-x64.h
Generated on Tue Jul 1 2025 02:36:49 for V8 Project by
1.9.1