| 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 <sstream> | 5 #include <sstream> | 
| 6 | 6 | 
| 7 #include "src/v8.h" | 7 #include "src/v8.h" | 
| 8 | 8 | 
| 9 #if V8_TARGET_ARCH_X64 | 9 #if V8_TARGET_ARCH_X64 | 
| 10 | 10 | 
| (...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1119         UseFixed(instr->OperandAt(i), descriptor.GetParameterRegister(i - 1)); | 1119         UseFixed(instr->OperandAt(i), descriptor.GetParameterRegister(i - 1)); | 
| 1120     ops.Add(op, zone()); | 1120     ops.Add(op, zone()); | 
| 1121   } | 1121   } | 
| 1122 | 1122 | 
| 1123   LCallWithDescriptor* result = new(zone()) LCallWithDescriptor( | 1123   LCallWithDescriptor* result = new(zone()) LCallWithDescriptor( | 
| 1124       descriptor, ops, zone()); | 1124       descriptor, ops, zone()); | 
| 1125   return MarkAsCall(DefineFixed(result, rax), instr); | 1125   return MarkAsCall(DefineFixed(result, rax), instr); | 
| 1126 } | 1126 } | 
| 1127 | 1127 | 
| 1128 | 1128 | 
| 1129 LInstruction* LChunkBuilder::DoTailCallThroughMegamorphicCache( |  | 
| 1130     HTailCallThroughMegamorphicCache* instr) { |  | 
| 1131   LOperand* context = UseFixed(instr->context(), rsi); |  | 
| 1132   LOperand* receiver_register = |  | 
| 1133       UseFixed(instr->receiver(), LoadDescriptor::ReceiverRegister()); |  | 
| 1134   LOperand* name_register = |  | 
| 1135       UseFixed(instr->name(), LoadDescriptor::NameRegister()); |  | 
| 1136 |  | 
| 1137   // Not marked as call. It can't deoptimize, and it never returns. |  | 
| 1138   return new (zone()) LTailCallThroughMegamorphicCache( |  | 
| 1139       context, receiver_register, name_register); |  | 
| 1140 } |  | 
| 1141 |  | 
| 1142 |  | 
| 1143 LInstruction* LChunkBuilder::DoInvokeFunction(HInvokeFunction* instr) { | 1129 LInstruction* LChunkBuilder::DoInvokeFunction(HInvokeFunction* instr) { | 
| 1144   LOperand* context = UseFixed(instr->context(), rsi); | 1130   LOperand* context = UseFixed(instr->context(), rsi); | 
| 1145   LOperand* function = UseFixed(instr->function(), rdi); | 1131   LOperand* function = UseFixed(instr->function(), rdi); | 
| 1146   LInvokeFunction* result = new(zone()) LInvokeFunction(context, function); | 1132   LInvokeFunction* result = new(zone()) LInvokeFunction(context, function); | 
| 1147   return MarkAsCall(DefineFixed(result, rax), instr, CANNOT_DEOPTIMIZE_EAGERLY); | 1133   return MarkAsCall(DefineFixed(result, rax), instr, CANNOT_DEOPTIMIZE_EAGERLY); | 
| 1148 } | 1134 } | 
| 1149 | 1135 | 
| 1150 | 1136 | 
| 1151 LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) { | 1137 LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) { | 
| 1152   switch (instr->op()) { | 1138   switch (instr->op()) { | 
| (...skipping 1564 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2717   LOperand* function = UseRegisterAtStart(instr->function()); | 2703   LOperand* function = UseRegisterAtStart(instr->function()); | 
| 2718   LAllocateBlockContext* result = | 2704   LAllocateBlockContext* result = | 
| 2719       new(zone()) LAllocateBlockContext(context, function); | 2705       new(zone()) LAllocateBlockContext(context, function); | 
| 2720   return MarkAsCall(DefineFixed(result, rsi), instr); | 2706   return MarkAsCall(DefineFixed(result, rsi), instr); | 
| 2721 } | 2707 } | 
| 2722 | 2708 | 
| 2723 | 2709 | 
| 2724 } }  // namespace v8::internal | 2710 } }  // namespace v8::internal | 
| 2725 | 2711 | 
| 2726 #endif  // V8_TARGET_ARCH_X64 | 2712 #endif  // V8_TARGET_ARCH_X64 | 
| OLD | NEW | 
|---|