OLD | NEW |
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/crankshaft/mips64/lithium-codegen-mips64.h" | 5 #include "src/crankshaft/mips64/lithium-codegen-mips64.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/crankshaft/hydrogen-osr.h" | 9 #include "src/crankshaft/hydrogen-osr.h" |
10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" |
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 void LCodeGen::DoInstructionGap(LInstructionGap* instr) { | 921 void LCodeGen::DoInstructionGap(LInstructionGap* instr) { |
922 DoGap(instr); | 922 DoGap(instr); |
923 } | 923 } |
924 | 924 |
925 | 925 |
926 void LCodeGen::DoParameter(LParameter* instr) { | 926 void LCodeGen::DoParameter(LParameter* instr) { |
927 // Nothing to do. | 927 // Nothing to do. |
928 } | 928 } |
929 | 929 |
930 | 930 |
931 void LCodeGen::DoCallStub(LCallStub* instr) { | |
932 DCHECK(ToRegister(instr->context()).is(cp)); | |
933 DCHECK(ToRegister(instr->result()).is(v0)); | |
934 switch (instr->hydrogen()->major_key()) { | |
935 case CodeStub::RegExpExec: { | |
936 RegExpExecStub stub(isolate()); | |
937 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | |
938 break; | |
939 } | |
940 case CodeStub::SubString: { | |
941 SubStringStub stub(isolate()); | |
942 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | |
943 break; | |
944 } | |
945 default: | |
946 UNREACHABLE(); | |
947 } | |
948 } | |
949 | |
950 | |
951 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { | 931 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { |
952 GenerateOsrPrologue(); | 932 GenerateOsrPrologue(); |
953 } | 933 } |
954 | 934 |
955 | 935 |
956 void LCodeGen::DoModByPowerOf2I(LModByPowerOf2I* instr) { | 936 void LCodeGen::DoModByPowerOf2I(LModByPowerOf2I* instr) { |
957 Register dividend = ToRegister(instr->dividend()); | 937 Register dividend = ToRegister(instr->dividend()); |
958 int32_t divisor = instr->divisor(); | 938 int32_t divisor = instr->divisor(); |
959 DCHECK(dividend.is(ToRegister(instr->result()))); | 939 DCHECK(dividend.is(ToRegister(instr->result()))); |
960 | 940 |
(...skipping 4816 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5777 __ Push(at, ToRegister(instr->function())); | 5757 __ Push(at, ToRegister(instr->function())); |
5778 CallRuntime(Runtime::kPushBlockContext, instr); | 5758 CallRuntime(Runtime::kPushBlockContext, instr); |
5779 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5759 RecordSafepoint(Safepoint::kNoLazyDeopt); |
5780 } | 5760 } |
5781 | 5761 |
5782 | 5762 |
5783 #undef __ | 5763 #undef __ |
5784 | 5764 |
5785 } // namespace internal | 5765 } // namespace internal |
5786 } // namespace v8 | 5766 } // namespace v8 |
OLD | NEW |