OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/ppc/lithium-codegen-ppc.h" | 5 #include "src/crankshaft/ppc/lithium-codegen-ppc.h" |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/crankshaft/hydrogen-osr.h" | 10 #include "src/crankshaft/hydrogen-osr.h" |
(...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 | 883 |
884 | 884 |
885 void LCodeGen::DoInstructionGap(LInstructionGap* instr) { DoGap(instr); } | 885 void LCodeGen::DoInstructionGap(LInstructionGap* instr) { DoGap(instr); } |
886 | 886 |
887 | 887 |
888 void LCodeGen::DoParameter(LParameter* instr) { | 888 void LCodeGen::DoParameter(LParameter* instr) { |
889 // Nothing to do. | 889 // Nothing to do. |
890 } | 890 } |
891 | 891 |
892 | 892 |
893 void LCodeGen::DoCallStub(LCallStub* instr) { | |
894 DCHECK(ToRegister(instr->context()).is(cp)); | |
895 DCHECK(ToRegister(instr->result()).is(r3)); | |
896 switch (instr->hydrogen()->major_key()) { | |
897 case CodeStub::RegExpExec: { | |
898 RegExpExecStub stub(isolate()); | |
899 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | |
900 break; | |
901 } | |
902 case CodeStub::SubString: { | |
903 SubStringStub stub(isolate()); | |
904 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | |
905 break; | |
906 } | |
907 default: | |
908 UNREACHABLE(); | |
909 } | |
910 } | |
911 | |
912 | |
913 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { | 893 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { |
914 GenerateOsrPrologue(); | 894 GenerateOsrPrologue(); |
915 } | 895 } |
916 | 896 |
917 | 897 |
918 void LCodeGen::DoModByPowerOf2I(LModByPowerOf2I* instr) { | 898 void LCodeGen::DoModByPowerOf2I(LModByPowerOf2I* instr) { |
919 Register dividend = ToRegister(instr->dividend()); | 899 Register dividend = ToRegister(instr->dividend()); |
920 int32_t divisor = instr->divisor(); | 900 int32_t divisor = instr->divisor(); |
921 DCHECK(dividend.is(ToRegister(instr->result()))); | 901 DCHECK(dividend.is(ToRegister(instr->result()))); |
922 | 902 |
(...skipping 4857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5780 __ Push(scope_info); | 5760 __ Push(scope_info); |
5781 __ push(ToRegister(instr->function())); | 5761 __ push(ToRegister(instr->function())); |
5782 CallRuntime(Runtime::kPushBlockContext, instr); | 5762 CallRuntime(Runtime::kPushBlockContext, instr); |
5783 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5763 RecordSafepoint(Safepoint::kNoLazyDeopt); |
5784 } | 5764 } |
5785 | 5765 |
5786 | 5766 |
5787 #undef __ | 5767 #undef __ |
5788 } // namespace internal | 5768 } // namespace internal |
5789 } // namespace v8 | 5769 } // namespace v8 |
OLD | NEW |