V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
Main Page
Related Pages
+
Namespaces
Namespace List
+
Namespace Members
+
All
a
c
d
g
i
k
n
p
r
s
t
Functions
Typedefs
Enumerations
Enumerator
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
~
+
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
~
+
Variables
a
c
d
e
h
k
l
n
o
s
Typedefs
Enumerations
+
Files
File List
Examples
▼
V8 API Reference Guide
The V8 public C++ API
▶
Namespaces
▶
Classes
▼
Files
▶
File List
▶
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Pages
cpu-ia32.cc
1
// Copyright 2011 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
// CPU specific code for ia32 independent of OS goes here.
6
7
#ifdef __GNUC__
8
#include "src/third_party/valgrind/valgrind.h"
9
#endif
10
11
#if V8_TARGET_ARCH_IA32
12
13
#include "src/assembler.h"
14
#include "src/macro-assembler.h"
15
16
namespace
v8
{
17
namespace
internal {
18
19
void
CpuFeatures::FlushICache(
void
* start,
size_t
size) {
20
// No need to flush the instruction cache on Intel. On Intel instruction
21
// cache flushing is only necessary when multiple cores running the same
22
// code simultaneously. V8 (and JavaScript) is single threaded and when code
23
// is patched on an intel CPU the core performing the patching will have its
24
// own instruction cache updated automatically.
25
26
// If flushing of the instruction cache becomes necessary Windows has the
27
// API function FlushInstructionCache.
28
29
// By default, valgrind only checks the stack for writes that might need to
30
// invalidate already cached translated code. This leads to random
31
// instability when code patches or moves are sometimes unnoticed. One
32
// solution is to run valgrind with --smc-check=all, but this comes at a big
33
// performance cost. We can notify valgrind to invalidate its cache.
34
#ifdef VALGRIND_DISCARD_TRANSLATIONS
35
unsigned
res = VALGRIND_DISCARD_TRANSLATIONS(start, size);
36
USE(res);
37
#endif
38
}
39
40
}
// namespace internal
41
}
// namespace v8
42
43
#endif // V8_TARGET_ARCH_IA32
v8
Definition:
libplatform.h:13
v8
src
ia32
cpu-ia32.cc
Generated on Tue Dec 25 2018 14:38:55 by
1.8.14