| Index: src/arm/codegen-arm.cc
|
| diff --git a/src/arm/codegen-arm.cc b/src/arm/codegen-arm.cc
|
| index 97f103406113aaed83f88efa9e23f8292f4bb3e9..98a8abe97afc4574bc5f7dccfd0a6b65a0cc75d3 100644
|
| --- a/src/arm/codegen-arm.cc
|
| +++ b/src/arm/codegen-arm.cc
|
| @@ -18,23 +18,22 @@ namespace internal {
|
|
|
|
|
| #if defined(USE_SIMULATOR)
|
| -byte* fast_exp_arm_machine_code = NULL;
|
| -double fast_exp_simulator(double x) {
|
| - return Simulator::current(Isolate::Current())->CallFPReturnsDouble(
|
| - fast_exp_arm_machine_code, x, 0);
|
| +byte* fast_exp_arm_machine_code = nullptr;
|
| +double fast_exp_simulator(double x, Isolate* isolate) {
|
| + return Simulator::current(isolate)
|
| + ->CallFPReturnsDouble(fast_exp_arm_machine_code, x, 0);
|
| }
|
| #endif
|
|
|
|
|
| -UnaryMathFunction CreateExpFunction() {
|
| - if (!FLAG_fast_math) return &std::exp;
|
| +UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
|
| size_t actual_size;
|
| byte* buffer =
|
| static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
|
| - if (buffer == NULL) return &std::exp;
|
| + if (buffer == nullptr) return nullptr;
|
| ExternalReference::InitializeMathExpData();
|
|
|
| - MacroAssembler masm(NULL, buffer, static_cast<int>(actual_size));
|
| + MacroAssembler masm(nullptr, buffer, static_cast<int>(actual_size));
|
|
|
| {
|
| DwVfpRegister input = d0;
|
| @@ -67,11 +66,11 @@ UnaryMathFunction CreateExpFunction() {
|
| masm.GetCode(&desc);
|
| DCHECK(!RelocInfo::RequiresRelocation(desc));
|
|
|
| - Assembler::FlushICacheWithoutIsolate(buffer, actual_size);
|
| + Assembler::FlushICache(isolate, buffer, actual_size);
|
| base::OS::ProtectCode(buffer, actual_size);
|
|
|
| #if !defined(USE_SIMULATOR)
|
| - return FUNCTION_CAST<UnaryMathFunction>(buffer);
|
| + return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
|
| #else
|
| fast_exp_arm_machine_code = buffer;
|
| return &fast_exp_simulator;
|
|
|