OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved.7 | 1 // Copyright 2012 the V8 project authors. All rights reserved.7 |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 2840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2851 no_frame_start = masm_->pc_offset(); | 2851 no_frame_start = masm_->pc_offset(); |
2852 __ Pop(ra, fp); | 2852 __ Pop(ra, fp); |
2853 } | 2853 } |
2854 if (instr->has_constant_parameter_count()) { | 2854 if (instr->has_constant_parameter_count()) { |
2855 int parameter_count = ToInteger32(instr->constant_parameter_count()); | 2855 int parameter_count = ToInteger32(instr->constant_parameter_count()); |
2856 int32_t sp_delta = (parameter_count + 1) * kPointerSize; | 2856 int32_t sp_delta = (parameter_count + 1) * kPointerSize; |
2857 if (sp_delta != 0) { | 2857 if (sp_delta != 0) { |
2858 __ Addu(sp, sp, Operand(sp_delta)); | 2858 __ Addu(sp, sp, Operand(sp_delta)); |
2859 } | 2859 } |
2860 } else { | 2860 } else { |
| 2861 DCHECK(info()->IsStub()); // Functions would need to drop one more value. |
2861 Register reg = ToRegister(instr->parameter_count()); | 2862 Register reg = ToRegister(instr->parameter_count()); |
2862 // The argument count parameter is a smi | 2863 // The argument count parameter is a smi |
2863 __ SmiUntag(reg); | 2864 __ SmiUntag(reg); |
2864 __ sll(at, reg, kPointerSizeLog2); | 2865 __ sll(at, reg, kPointerSizeLog2); |
2865 __ Addu(sp, sp, at); | 2866 __ Addu(sp, sp, at); |
2866 } | 2867 } |
2867 | 2868 |
2868 __ Jump(ra); | 2869 __ Jump(ra); |
2869 | 2870 |
2870 if (no_frame_start != -1) { | 2871 if (no_frame_start != -1) { |
(...skipping 3055 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5926 __ li(at, scope_info); | 5927 __ li(at, scope_info); |
5927 __ Push(at, ToRegister(instr->function())); | 5928 __ Push(at, ToRegister(instr->function())); |
5928 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 5929 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
5929 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5930 RecordSafepoint(Safepoint::kNoLazyDeopt); |
5930 } | 5931 } |
5931 | 5932 |
5932 | 5933 |
5933 #undef __ | 5934 #undef __ |
5934 | 5935 |
5935 } } // namespace v8::internal | 5936 } } // namespace v8::internal |
OLD | NEW |