Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: src/x64/lithium-codegen-x64.h

Issue 149413010: A64: Synchronize with r16024. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/x64/full-codegen-x64.cc ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 99
100 // Support for converting LOperands to assembler types. 100 // Support for converting LOperands to assembler types.
101 Register ToRegister(LOperand* op) const; 101 Register ToRegister(LOperand* op) const;
102 XMMRegister ToDoubleRegister(LOperand* op) const; 102 XMMRegister ToDoubleRegister(LOperand* op) const;
103 bool IsInteger32Constant(LConstantOperand* op) const; 103 bool IsInteger32Constant(LConstantOperand* op) const;
104 bool IsSmiConstant(LConstantOperand* op) const; 104 bool IsSmiConstant(LConstantOperand* op) const;
105 int ToRepresentation(LConstantOperand* op, const Representation& r) const; 105 int ToRepresentation(LConstantOperand* op, const Representation& r) const;
106 int32_t ToInteger32(LConstantOperand* op) const; 106 int32_t ToInteger32(LConstantOperand* op) const;
107 Smi* ToSmi(LConstantOperand* op) const; 107 Smi* ToSmi(LConstantOperand* op) const;
108 double ToDouble(LConstantOperand* op) const; 108 double ToDouble(LConstantOperand* op) const;
109 ExternalReference ToExternalReference(LConstantOperand* op) const;
109 bool IsTaggedConstant(LConstantOperand* op) const; 110 bool IsTaggedConstant(LConstantOperand* op) const;
110 Handle<Object> ToHandle(LConstantOperand* op) const; 111 Handle<Object> ToHandle(LConstantOperand* op) const;
111 Operand ToOperand(LOperand* op) const; 112 Operand ToOperand(LOperand* op) const;
112 113
113 // Try to generate code for the entire chunk, but it may fail if the 114 // Try to generate code for the entire chunk, but it may fail if the
114 // chunk contains constructs we cannot handle. Returns true if the 115 // chunk contains constructs we cannot handle. Returns true if the
115 // code generation attempt succeeded. 116 // code generation attempt succeeded.
116 bool GenerateCode(); 117 bool GenerateCode();
117 118
118 // Finish the code by setting stack height, safepoint, and bailout 119 // Finish the code by setting stack height, safepoint, and bailout
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 172
172 void EmitClassOfTest(Label* if_true, 173 void EmitClassOfTest(Label* if_true,
173 Label* if_false, 174 Label* if_false,
174 Handle<String> class_name, 175 Handle<String> class_name,
175 Register input, 176 Register input,
176 Register temporary, 177 Register temporary,
177 Register scratch); 178 Register scratch);
178 179
179 int GetStackSlotCount() const { return chunk()->spill_slot_count(); } 180 int GetStackSlotCount() const { return chunk()->spill_slot_count(); }
180 181
181 void Abort(const char* reason); 182 void Abort(BailoutReason reason);
182 void FPRINTF_CHECKING Comment(const char* format, ...); 183 void FPRINTF_CHECKING Comment(const char* format, ...);
183 184
184 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } 185 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); }
185 186
186 // Code generation passes. Returns true if code generation should 187 // Code generation passes. Returns true if code generation should
187 // continue. 188 // continue.
188 bool GeneratePrologue(); 189 bool GeneratePrologue();
189 bool GenerateBody(); 190 bool GenerateBody();
190 bool GenerateDeferredCode(); 191 bool GenerateDeferredCode();
191 bool GenerateJumpTable(); 192 bool GenerateJumpTable();
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 Register ToRegister(int index) const; 261 Register ToRegister(int index) const;
261 XMMRegister ToDoubleRegister(int index) const; 262 XMMRegister ToDoubleRegister(int index) const;
262 Operand BuildFastArrayOperand( 263 Operand BuildFastArrayOperand(
263 LOperand* elements_pointer, 264 LOperand* elements_pointer,
264 LOperand* key, 265 LOperand* key,
265 ElementsKind elements_kind, 266 ElementsKind elements_kind,
266 uint32_t offset, 267 uint32_t offset,
267 uint32_t additional_index = 0); 268 uint32_t additional_index = 0);
268 269
269 void EmitIntegerMathAbs(LMathAbs* instr); 270 void EmitIntegerMathAbs(LMathAbs* instr);
271 void EmitInteger64MathAbs(LMathAbs* instr);
270 272
271 // Support for recording safepoint and position information. 273 // Support for recording safepoint and position information.
272 void RecordSafepoint(LPointerMap* pointers, 274 void RecordSafepoint(LPointerMap* pointers,
273 Safepoint::Kind kind, 275 Safepoint::Kind kind,
274 int arguments, 276 int arguments,
275 Safepoint::DeoptMode mode); 277 Safepoint::DeoptMode mode);
276 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); 278 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode);
277 void RecordSafepoint(Safepoint::DeoptMode mode); 279 void RecordSafepoint(Safepoint::DeoptMode mode);
278 void RecordSafepointWithRegisters(LPointerMap* pointers, 280 void RecordSafepointWithRegisters(LPointerMap* pointers,
279 int arguments, 281 int arguments,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 int* offset, 339 int* offset,
338 AllocationSiteMode mode); 340 AllocationSiteMode mode);
339 341
340 void EnsureSpaceForLazyDeopt(int space_needed); 342 void EnsureSpaceForLazyDeopt(int space_needed);
341 void DoLoadKeyedExternalArray(LLoadKeyed* instr); 343 void DoLoadKeyedExternalArray(LLoadKeyed* instr);
342 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr); 344 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr);
343 void DoLoadKeyedFixedArray(LLoadKeyed* instr); 345 void DoLoadKeyedFixedArray(LLoadKeyed* instr);
344 void DoStoreKeyedExternalArray(LStoreKeyed* instr); 346 void DoStoreKeyedExternalArray(LStoreKeyed* instr);
345 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); 347 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr);
346 void DoStoreKeyedFixedArray(LStoreKeyed* instr); 348 void DoStoreKeyedFixedArray(LStoreKeyed* instr);
349 #ifdef _MSC_VER
350 // On windows, you may not access the stack more than one page below
351 // the most recently mapped page. To make the allocated area randomly
352 // accessible, we write an arbitrary value to each page in range
353 // rsp + offset - page_size .. rsp in turn.
354 void MakeSureStackPagesMapped(int offset);
355 #endif
347 356
348 Zone* zone_; 357 Zone* zone_;
349 LPlatformChunk* const chunk_; 358 LPlatformChunk* const chunk_;
350 MacroAssembler* const masm_; 359 MacroAssembler* const masm_;
351 CompilationInfo* const info_; 360 CompilationInfo* const info_;
352 361
353 int current_block_; 362 int current_block_;
354 int current_instruction_; 363 int current_instruction_;
355 const ZoneList<LInstruction*>* instructions_; 364 const ZoneList<LInstruction*>* instructions_;
356 ZoneList<LEnvironment*> deoptimizations_; 365 ZoneList<LEnvironment*> deoptimizations_;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 LCodeGen* codegen_; 436 LCodeGen* codegen_;
428 Label entry_; 437 Label entry_;
429 Label exit_; 438 Label exit_;
430 Label* external_exit_; 439 Label* external_exit_;
431 int instruction_index_; 440 int instruction_index_;
432 }; 441 };
433 442
434 } } // namespace v8::internal 443 } } // namespace v8::internal
435 444
436 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ 445 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_
OLDNEW
« no previous file with comments | « src/x64/full-codegen-x64.cc ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698