| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 | 71 |
| 72 | 72 |
| 73 // Simple accessors. | 73 // Simple accessors. |
| 74 MacroAssembler* masm() const { return masm_; } | 74 MacroAssembler* masm() const { return masm_; } |
| 75 CompilationInfo* info() const { return info_; } | 75 CompilationInfo* info() const { return info_; } |
| 76 Isolate* isolate() const { return info_->isolate(); } | 76 Isolate* isolate() const { return info_->isolate(); } |
| 77 Factory* factory() const { return isolate()->factory(); } | 77 Factory* factory() const { return isolate()->factory(); } |
| 78 Heap* heap() const { return isolate()->heap(); } | 78 Heap* heap() const { return isolate()->heap(); } |
| 79 Zone* zone() const { return zone_; } | 79 Zone* zone() const { return zone_; } |
| 80 | 80 |
| 81 // TODO(svenpanne) Use this consistently. | |
| 82 int LookupDestination(int block_id) const { | 81 int LookupDestination(int block_id) const { |
| 83 return chunk()->LookupDestination(block_id); | 82 return chunk()->LookupDestination(block_id); |
| 84 } | 83 } |
| 85 | 84 |
| 86 bool IsNextEmittedBlock(int block_id) const { | 85 bool IsNextEmittedBlock(int block_id) const { |
| 87 return LookupDestination(block_id) == GetNextEmittedBlock(); | 86 return LookupDestination(block_id) == GetNextEmittedBlock(); |
| 88 } | 87 } |
| 89 | 88 |
| 90 bool NeedsEagerFrame() const { | 89 bool NeedsEagerFrame() const { |
| 91 return GetStackSlotCount() > 0 || | 90 return GetStackSlotCount() > 0 || |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 void DoDeferredNumberTagI(LInstruction* instr, | 141 void DoDeferredNumberTagI(LInstruction* instr, |
| 143 LOperand* value, | 142 LOperand* value, |
| 144 IntegerSignedness signedness); | 143 IntegerSignedness signedness); |
| 145 | 144 |
| 146 void DoDeferredTaggedToI(LTaggedToI* instr); | 145 void DoDeferredTaggedToI(LTaggedToI* instr); |
| 147 void DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr); | 146 void DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr); |
| 148 void DoDeferredStackCheck(LStackCheck* instr); | 147 void DoDeferredStackCheck(LStackCheck* instr); |
| 149 void DoDeferredRandom(LRandom* instr); | 148 void DoDeferredRandom(LRandom* instr); |
| 150 void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr); | 149 void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr); |
| 151 void DoDeferredStringCharFromCode(LStringCharFromCode* instr); | 150 void DoDeferredStringCharFromCode(LStringCharFromCode* instr); |
| 151 void DoDeferredAllocateObject(LAllocateObject* instr); |
| 152 void DoDeferredAllocate(LAllocate* instr); | 152 void DoDeferredAllocate(LAllocate* instr); |
| 153 void DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, | 153 void DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, |
| 154 Label* map_check); | 154 Label* map_check); |
| 155 | 155 |
| 156 void DoCheckMapCommon(Register map_reg, Handle<Map> map, LEnvironment* env); | 156 void DoCheckMapCommon(Register map_reg, Handle<Map> map, LEnvironment* env); |
| 157 | 157 |
| 158 // Parallel move support. | 158 // Parallel move support. |
| 159 void DoParallelMove(LParallelMove* move); | 159 void DoParallelMove(LParallelMove* move); |
| 160 void DoGap(LGap* instr); | 160 void DoGap(LGap* instr); |
| 161 | 161 |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 void RecordSafepointWithRegisters(LPointerMap* pointers, | 314 void RecordSafepointWithRegisters(LPointerMap* pointers, |
| 315 int arguments, | 315 int arguments, |
| 316 Safepoint::DeoptMode mode); | 316 Safepoint::DeoptMode mode); |
| 317 void RecordSafepointWithRegistersAndDoubles(LPointerMap* pointers, | 317 void RecordSafepointWithRegistersAndDoubles(LPointerMap* pointers, |
| 318 int arguments, | 318 int arguments, |
| 319 Safepoint::DeoptMode mode); | 319 Safepoint::DeoptMode mode); |
| 320 void RecordPosition(int position); | 320 void RecordPosition(int position); |
| 321 | 321 |
| 322 static Condition TokenToCondition(Token::Value op, bool is_unsigned); | 322 static Condition TokenToCondition(Token::Value op, bool is_unsigned); |
| 323 void EmitGoto(int block); | 323 void EmitGoto(int block); |
| 324 void EmitBranch(int left_block, | 324 template<class InstrType> |
| 325 int right_block, | 325 void EmitBranch(InstrType instr, |
| 326 Condition cc, | 326 Condition cc, |
| 327 Register src1, | 327 Register src1, |
| 328 const Operand& src2); | 328 const Operand& src2); |
| 329 void EmitBranchF(int left_block, | 329 template<class InstrType> |
| 330 int right_block, | 330 void EmitBranchF(InstrType instr, |
| 331 Condition cc, | 331 Condition cc, |
| 332 FPURegister src1, | 332 FPURegister src1, |
| 333 FPURegister src2); | 333 FPURegister src2); |
| 334 void EmitCmpI(LOperand* left, LOperand* right); | 334 void EmitCmpI(LOperand* left, LOperand* right); |
| 335 void EmitNumberUntagD(Register input, | 335 void EmitNumberUntagD(Register input, |
| 336 DoubleRegister result, | 336 DoubleRegister result, |
| 337 bool allow_undefined_as_nan, | 337 bool allow_undefined_as_nan, |
| 338 bool deoptimize_on_minus_zero, | 338 bool deoptimize_on_minus_zero, |
| 339 LEnvironment* env, | 339 LEnvironment* env, |
| 340 NumberUntagDMode mode); | 340 NumberUntagDMode mode); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 358 Register temp1, | 358 Register temp1, |
| 359 Register temp2, | 359 Register temp2, |
| 360 Label* is_not_object, | 360 Label* is_not_object, |
| 361 Label* is_object); | 361 Label* is_object); |
| 362 | 362 |
| 363 // Emits optimized code for %_IsString(x). Preserves input register. | 363 // Emits optimized code for %_IsString(x). Preserves input register. |
| 364 // Returns the condition on which a final split to | 364 // Returns the condition on which a final split to |
| 365 // true and false label should be made, to optimize fallthrough. | 365 // true and false label should be made, to optimize fallthrough. |
| 366 Condition EmitIsString(Register input, | 366 Condition EmitIsString(Register input, |
| 367 Register temp1, | 367 Register temp1, |
| 368 Label* is_not_string); | 368 Label* is_not_string, |
| 369 SmiCheck check_needed); |
| 369 | 370 |
| 370 // Emits optimized code for %_IsConstructCall(). | 371 // Emits optimized code for %_IsConstructCall(). |
| 371 // Caller should branch on equal condition. | 372 // Caller should branch on equal condition. |
| 372 void EmitIsConstructCall(Register temp1, Register temp2); | 373 void EmitIsConstructCall(Register temp1, Register temp2); |
| 373 | 374 |
| 374 void EmitLoadFieldOrConstantFunction(Register result, | 375 void EmitLoadFieldOrConstantFunction(Register result, |
| 375 Register object, | 376 Register object, |
| 376 Handle<Map> type, | 377 Handle<Map> type, |
| 377 Handle<String> name, | 378 Handle<String> name, |
| 378 LEnvironment* env); | 379 LEnvironment* env); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 LCodeGen* codegen_; | 508 LCodeGen* codegen_; |
| 508 Label entry_; | 509 Label entry_; |
| 509 Label exit_; | 510 Label exit_; |
| 510 Label* external_exit_; | 511 Label* external_exit_; |
| 511 int instruction_index_; | 512 int instruction_index_; |
| 512 }; | 513 }; |
| 513 | 514 |
| 514 } } // namespace v8::internal | 515 } } // namespace v8::internal |
| 515 | 516 |
| 516 #endif // V8_MIPS_LITHIUM_CODEGEN_MIPS_H_ | 517 #endif // V8_MIPS_LITHIUM_CODEGEN_MIPS_H_ |
| OLD | NEW |