| 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 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 arguments()->PrintTo(stream); | 351 arguments()->PrintTo(stream); |
| 352 | 352 |
| 353 stream->Add(" length "); | 353 stream->Add(" length "); |
| 354 length()->PrintTo(stream); | 354 length()->PrintTo(stream); |
| 355 | 355 |
| 356 stream->Add(" index "); | 356 stream->Add(" index "); |
| 357 index()->PrintTo(stream); | 357 index()->PrintTo(stream); |
| 358 } | 358 } |
| 359 | 359 |
| 360 | 360 |
| 361 int LChunk::GetNextSpillIndex(bool is_double) { | 361 int LPlatformChunk::GetNextSpillIndex(bool is_double) { |
| 362 return spill_slot_count_++; | 362 return spill_slot_count_++; |
| 363 } | 363 } |
| 364 | 364 |
| 365 | 365 |
| 366 LOperand* LChunk::GetNextSpillSlot(bool is_double) { | 366 LOperand* LPlatformChunk::GetNextSpillSlot(bool is_double) { |
| 367 // All stack slots are Double stack slots on x64. | 367 // All stack slots are Double stack slots on x64. |
| 368 // Alternatively, at some point, start using half-size | 368 // Alternatively, at some point, start using half-size |
| 369 // stack slots for int32 values. | 369 // stack slots for int32 values. |
| 370 int index = GetNextSpillIndex(is_double); | 370 int index = GetNextSpillIndex(is_double); |
| 371 if (is_double) { | 371 if (is_double) { |
| 372 return LDoubleStackSlot::Create(index, zone()); | 372 return LDoubleStackSlot::Create(index, zone()); |
| 373 } else { | 373 } else { |
| 374 return LStackSlot::Create(index, zone()); | 374 return LStackSlot::Create(index, zone()); |
| 375 } | 375 } |
| 376 } | 376 } |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 value()->PrintTo(stream); | 420 value()->PrintTo(stream); |
| 421 } | 421 } |
| 422 | 422 |
| 423 | 423 |
| 424 void LTransitionElementsKind::PrintDataTo(StringStream* stream) { | 424 void LTransitionElementsKind::PrintDataTo(StringStream* stream) { |
| 425 object()->PrintTo(stream); | 425 object()->PrintTo(stream); |
| 426 stream->Add(" %p -> %p", *original_map(), *transitioned_map()); | 426 stream->Add(" %p -> %p", *original_map(), *transitioned_map()); |
| 427 } | 427 } |
| 428 | 428 |
| 429 | 429 |
| 430 LChunk* LChunkBuilder::Build() { | 430 LPlatformChunk* LChunkBuilder::Build() { |
| 431 ASSERT(is_unused()); | 431 ASSERT(is_unused()); |
| 432 chunk_ = new(zone()) LChunk(info(), graph()); | 432 chunk_ = new(zone()) LPlatformChunk(info(), graph()); |
| 433 HPhase phase("L_Building chunk", chunk_); | 433 HPhase phase("L_Building chunk", chunk_); |
| 434 status_ = BUILDING; | 434 status_ = BUILDING; |
| 435 const ZoneList<HBasicBlock*>* blocks = graph()->blocks(); | 435 const ZoneList<HBasicBlock*>* blocks = graph()->blocks(); |
| 436 for (int i = 0; i < blocks->length(); i++) { | 436 for (int i = 0; i < blocks->length(); i++) { |
| 437 HBasicBlock* next = NULL; | 437 HBasicBlock* next = NULL; |
| 438 if (i < blocks->length() - 1) next = blocks->at(i + 1); | 438 if (i < blocks->length() - 1) next = blocks->at(i + 1); |
| 439 DoBasicBlock(blocks->at(i), next); | 439 DoBasicBlock(blocks->at(i), next); |
| 440 if (is_aborted()) return NULL; | 440 if (is_aborted()) return NULL; |
| 441 } | 441 } |
| 442 status_ = DONE; | 442 status_ = DONE; |
| 443 return chunk_; | 443 return chunk_; |
| 444 } | 444 } |
| 445 | 445 |
| 446 | 446 |
| 447 void LChunkBuilder::Abort(const char* format, ...) { | 447 void LChunkBuilder::Abort(const char* format, ...) { |
| 448 if (FLAG_trace_bailout) { | 448 if (FLAG_trace_bailout) { |
| 449 SmartArrayPointer<char> name( | 449 SmartArrayPointer<char> name( |
| 450 info()->shared_info()->DebugName()->ToCString()); | 450 info()->shared_info()->DebugName()->ToCString()); |
| 451 PrintF("Aborting LChunk building in @\"%s\": ", *name); | 451 PrintF("Aborting LPlatformChunk building in @\"%s\": ", *name); |
| 452 va_list arguments; | 452 va_list arguments; |
| 453 va_start(arguments, format); | 453 va_start(arguments, format); |
| 454 OS::VPrint(format, arguments); | 454 OS::VPrint(format, arguments); |
| 455 va_end(arguments); | 455 va_end(arguments); |
| 456 PrintF("\n"); | 456 PrintF("\n"); |
| 457 } | 457 } |
| 458 status_ = ABORTED; | 458 status_ = ABORTED; |
| 459 } | 459 } |
| 460 | 460 |
| 461 | 461 |
| (...skipping 1796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2258 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { | 2258 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { |
| 2259 LOperand* object = UseRegister(instr->object()); | 2259 LOperand* object = UseRegister(instr->object()); |
| 2260 LOperand* index = UseTempRegister(instr->index()); | 2260 LOperand* index = UseTempRegister(instr->index()); |
| 2261 return DefineSameAsFirst(new(zone()) LLoadFieldByIndex(object, index)); | 2261 return DefineSameAsFirst(new(zone()) LLoadFieldByIndex(object, index)); |
| 2262 } | 2262 } |
| 2263 | 2263 |
| 2264 | 2264 |
| 2265 } } // namespace v8::internal | 2265 } } // namespace v8::internal |
| 2266 | 2266 |
| 2267 #endif // V8_TARGET_ARCH_X64 | 2267 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |