v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
cpu-mips64.cc
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
// CPU specific code for arm independent of OS goes here.
6
7
#include <sys/syscall.h>
8
#include <unistd.h>
9
10
#ifdef __mips
11
#include <asm/cachectl.h>
12
#endif
// #ifdef __mips
13
14
#if V8_TARGET_ARCH_MIPS64
15
16
#include "
src/codegen/cpu-features.h
"
17
18
namespace
v8
{
19
namespace
internal
{
20
21
void
CpuFeatures::FlushICache
(
void
*
start
,
size_t
size) {
22
#if !defined(USE_SIMULATOR)
23
// Nothing to do, flushing no instructions.
24
if
(size == 0) {
25
return
;
26
}
27
28
#if defined(ANDROID) && !defined(__LP64__)
29
// Bionic cacheflush can typically run in userland, avoiding kernel call.
30
char
*
end
=
reinterpret_cast<
char
*
>
(
start
) + size;
31
cacheflush(
reinterpret_cast<
intptr_t
>
(
start
),
reinterpret_cast<
intptr_t
>
(
end
),
32
0);
33
#else
// ANDROID
34
long
res;
// NOLINT(runtime/int)
35
// See http://www.linux-mips.org/wiki/Cacheflush_Syscall.
36
res = syscall(__NR_cacheflush,
start
, size, ICACHE);
37
if
(res)
FATAL
(
"Failed to flush the instruction cache"
);
38
#endif
// ANDROID
39
#endif
// !USE_SIMULATOR.
40
}
41
42
}
// namespace internal
43
}
// namespace v8
44
45
#endif
// V8_TARGET_ARCH_MIPS64
v8::internal::CpuFeatures::FlushICache
static void FlushICache(void *start, size_t size)
Definition
cpu-riscv.cc:15
cpu-features.h
start
int start
Definition
debug-coverage.cc:595
end
int end
Definition
debug-coverage.cc:596
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8
Definition
api-arguments-inl.h:19
FATAL
#define FATAL(...)
Definition
logging.h:47
src
codegen
mips64
cpu-mips64.cc
Generated on Sun Apr 6 2025 21:08:50 for v8 by
1.12.0