MIPS: Added Android-specific version of cacheflush call.
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9234059 Patch from Daniel Kalmar <kalmard@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
ea041a187c
commit
18f28fb2c0
@ -1,4 +1,4 @@
|
||||
// Copyright 2011 the V8 project authors. All rights reserved.
|
||||
// Copyright 2012 the V8 project authors. All rights reserved.
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
@ -64,15 +64,19 @@ void CPU::FlushICache(void* start, size_t size) {
|
||||
}
|
||||
|
||||
#if !defined (USE_SIMULATOR)
|
||||
#if defined(ANDROID)
|
||||
// Bionic cacheflush can typically run in userland, avoiding kernel call.
|
||||
char *end = reinterpret_cast<char *>(start) + size;
|
||||
cacheflush(
|
||||
reinterpret_cast<intptr_t>(start), reinterpret_cast<intptr_t>(end), 0);
|
||||
#else // ANDROID
|
||||
int res;
|
||||
|
||||
// See http://www.linux-mips.org/wiki/Cacheflush_Syscall.
|
||||
res = syscall(__NR_cacheflush, start, size, ICACHE);
|
||||
|
||||
if (res) {
|
||||
V8_Fatal(__FILE__, __LINE__, "Failed to flush the instruction cache");
|
||||
}
|
||||
|
||||
#endif // ANDROID
|
||||
#else // USE_SIMULATOR.
|
||||
// Not generating mips instructions for C-code. This means that we are
|
||||
// building a mips emulator based target. We should notify the simulator
|
||||
|
Loading…
Reference in New Issue
Block a user