| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 | 211 |
| 212 template<class InstrType> | 212 template<class InstrType> |
| 213 void EmitBranchIfNonZeroNumber(InstrType instr, | 213 void EmitBranchIfNonZeroNumber(InstrType instr, |
| 214 const FPRegister& value, | 214 const FPRegister& value, |
| 215 const FPRegister& scratch); | 215 const FPRegister& scratch); |
| 216 | 216 |
| 217 template<class InstrType> | 217 template<class InstrType> |
| 218 void EmitBranchIfHeapNumber(InstrType instr, | 218 void EmitBranchIfHeapNumber(InstrType instr, |
| 219 const Register& value); | 219 const Register& value); |
| 220 | 220 |
| 221 template<class InstrType> |
| 222 void EmitBranchIfRoot(InstrType instr, |
| 223 const Register& value, |
| 224 Heap::RootListIndex index); |
| 225 |
| 221 // Emits optimized code to deep-copy the contents of statically known object | 226 // Emits optimized code to deep-copy the contents of statically known object |
| 222 // graphs (e.g. object literal boilerplate). Expects a pointer to the | 227 // graphs (e.g. object literal boilerplate). Expects a pointer to the |
| 223 // allocated destination object in the result register, and a pointer to the | 228 // allocated destination object in the result register, and a pointer to the |
| 224 // source object in the source register. | 229 // source object in the source register. |
| 225 void EmitDeepCopy(Handle<JSObject> object, | 230 void EmitDeepCopy(Handle<JSObject> object, |
| 226 Register result, | 231 Register result, |
| 227 Register source, | 232 Register source, |
| 228 Register scratch, | 233 Register scratch, |
| 229 int* offset, | 234 int* offset, |
| 230 AllocationSiteMode mode); | 235 AllocationSiteMode mode); |
| 231 | 236 |
| 232 // Emits optimized code for %_IsString(x). Preserves input register. | 237 // Emits optimized code for %_IsString(x). Preserves input register. |
| 233 // Returns the condition on which a final split to | 238 // Returns the condition on which a final split to |
| 234 // true and false label should be made, to optimize fallthrough. | 239 // true and false label should be made, to optimize fallthrough. |
| 235 Condition EmitIsString(Register input, Register temp1, Label* is_not_string, | 240 Condition EmitIsString(Register input, Register temp1, Label* is_not_string, |
| 236 SmiCheck check_needed); | 241 SmiCheck check_needed); |
| 237 | 242 |
| 238 void EmitLoadFieldOrConstantFunction(Register result, | |
| 239 Register object, | |
| 240 Handle<Map> type, | |
| 241 Handle<String> name, | |
| 242 LEnvironment* env); | |
| 243 | |
| 244 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); | 243 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); |
| 245 int DefineDeoptimizationLiteral(Handle<Object> literal); | 244 int DefineDeoptimizationLiteral(Handle<Object> literal); |
| 246 void PopulateDeoptimizationData(Handle<Code> code); | 245 void PopulateDeoptimizationData(Handle<Code> code); |
| 247 void PopulateDeoptimizationLiteralsWithInlinedFunctions(); | 246 void PopulateDeoptimizationLiteralsWithInlinedFunctions(); |
| 248 | 247 |
| 249 void Deoptimize(LEnvironment* environment); | 248 void Deoptimize(LEnvironment* environment); |
| 250 void Deoptimize(LEnvironment* environment, | 249 void Deoptimize(LEnvironment* environment, |
| 251 Deoptimizer::BailoutType bailout_type); | 250 Deoptimizer::BailoutType bailout_type); |
| 252 void DeoptimizeIf(Condition cc, LEnvironment* environment); | 251 void DeoptimizeIf(Condition cc, LEnvironment* environment); |
| 253 void DeoptimizeIfZero(Register rt, LEnvironment* environment); | 252 void DeoptimizeIfZero(Register rt, LEnvironment* environment); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 void RecordAndUpdatePosition(int position); | 348 void RecordAndUpdatePosition(int position); |
| 350 void RecordSafepoint(LPointerMap* pointers, | 349 void RecordSafepoint(LPointerMap* pointers, |
| 351 Safepoint::Kind kind, | 350 Safepoint::Kind kind, |
| 352 int arguments, | 351 int arguments, |
| 353 Safepoint::DeoptMode mode); | 352 Safepoint::DeoptMode mode); |
| 354 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); | 353 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); |
| 355 void RecordSafepoint(Safepoint::DeoptMode mode); | 354 void RecordSafepoint(Safepoint::DeoptMode mode); |
| 356 void RecordSafepointWithRegisters(LPointerMap* pointers, | 355 void RecordSafepointWithRegisters(LPointerMap* pointers, |
| 357 int arguments, | 356 int arguments, |
| 358 Safepoint::DeoptMode mode); | 357 Safepoint::DeoptMode mode); |
| 358 void RecordSafepointWithRegistersAndDoubles(LPointerMap* pointers, |
| 359 int arguments, |
| 360 Safepoint::DeoptMode mode); |
| 359 void RecordSafepointWithLazyDeopt(LInstruction* instr, | 361 void RecordSafepointWithLazyDeopt(LInstruction* instr, |
| 360 SafepointMode safepoint_mode); | 362 SafepointMode safepoint_mode); |
| 361 | 363 |
| 362 void EnsureSpaceForLazyDeopt(); | 364 void EnsureSpaceForLazyDeopt(); |
| 363 | 365 |
| 364 Zone* zone_; | 366 Zone* zone_; |
| 365 LPlatformChunk* const chunk_; | 367 LPlatformChunk* const chunk_; |
| 366 MacroAssembler* const masm_; | 368 MacroAssembler* const masm_; |
| 367 CompilationInfo* const info_; | 369 CompilationInfo* const info_; |
| 368 | 370 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 | 491 |
| 490 protected: | 492 protected: |
| 491 MacroAssembler* masm() const { return codegen_->masm(); } | 493 MacroAssembler* masm() const { return codegen_->masm(); } |
| 492 | 494 |
| 493 LCodeGen* codegen_; | 495 LCodeGen* codegen_; |
| 494 }; | 496 }; |
| 495 | 497 |
| 496 } } // namespace v8::internal | 498 } } // namespace v8::internal |
| 497 | 499 |
| 498 #endif // V8_A64_LITHIUM_CODEGEN_A64_H_ | 500 #endif // V8_A64_LITHIUM_CODEGEN_A64_H_ |
| OLD | NEW |