Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(716)

Side by Side Diff: src/mips64/lithium-codegen-mips64.cc

Issue 1092353002: [strong] Disallow implicit conversions for binary arithmetic operations (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: cl feedback 5 Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/cpu-profiler.h" 9 #include "src/cpu-profiler.h"
10 #include "src/hydrogen-osr.h" 10 #include "src/hydrogen-osr.h"
(...skipping 2037 matching lines...) Expand 10 before | Expand all | Expand 10 after
2048 } 2048 }
2049 } 2049 }
2050 2050
2051 2051
2052 void LCodeGen::DoArithmeticT(LArithmeticT* instr) { 2052 void LCodeGen::DoArithmeticT(LArithmeticT* instr) {
2053 DCHECK(ToRegister(instr->context()).is(cp)); 2053 DCHECK(ToRegister(instr->context()).is(cp));
2054 DCHECK(ToRegister(instr->left()).is(a1)); 2054 DCHECK(ToRegister(instr->left()).is(a1));
2055 DCHECK(ToRegister(instr->right()).is(a0)); 2055 DCHECK(ToRegister(instr->right()).is(a0));
2056 DCHECK(ToRegister(instr->result()).is(v0)); 2056 DCHECK(ToRegister(instr->result()).is(v0));
2057 2057
2058 Handle<Code> code = CodeFactory::BinaryOpIC(isolate(), instr->op()).code(); 2058 Handle<Code> code = CodeFactory::BinaryOpIC(
2059 isolate(), instr->op(), language_mode()).code();
2059 CallCode(code, RelocInfo::CODE_TARGET, instr); 2060 CallCode(code, RelocInfo::CODE_TARGET, instr);
2060 // Other arch use a nop here, to signal that there is no inlined 2061 // Other arch use a nop here, to signal that there is no inlined
2061 // patchable code. Mips does not need the nop, since our marker 2062 // patchable code. Mips does not need the nop, since our marker
2062 // instruction (andi zero_reg) will never be used in normal code. 2063 // instruction (andi zero_reg) will never be used in normal code.
2063 } 2064 }
2064 2065
2065 2066
2066 template<class InstrType> 2067 template<class InstrType>
2067 void LCodeGen::EmitBranch(InstrType instr, 2068 void LCodeGen::EmitBranch(InstrType instr,
2068 Condition condition, 2069 Condition condition,
(...skipping 3955 matching lines...) Expand 10 before | Expand all | Expand 10 after
6024 __ li(at, scope_info); 6025 __ li(at, scope_info);
6025 __ Push(at, ToRegister(instr->function())); 6026 __ Push(at, ToRegister(instr->function()));
6026 CallRuntime(Runtime::kPushBlockContext, 2, instr); 6027 CallRuntime(Runtime::kPushBlockContext, 2, instr);
6027 RecordSafepoint(Safepoint::kNoLazyDeopt); 6028 RecordSafepoint(Safepoint::kNoLazyDeopt);
6028 } 6029 }
6029 6030
6030 6031
6031 #undef __ 6032 #undef __
6032 6033
6033 } } // namespace v8::internal 6034 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698