| OLD | NEW |
| 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
| 2 // All Rights Reserved. | 2 // All Rights Reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions | 5 // modification, are permitted provided that the following conditions |
| 6 // are met: | 6 // are met: |
| 7 // | 7 // |
| 8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
| 9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
| 10 // | 10 // |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 MemOperand::MemOperand(Register ra, Register rb) { | 213 MemOperand::MemOperand(Register ra, Register rb) { |
| 214 ra_ = ra; | 214 ra_ = ra; |
| 215 rb_ = rb; | 215 rb_ = rb; |
| 216 offset_ = 0; | 216 offset_ = 0; |
| 217 } | 217 } |
| 218 | 218 |
| 219 | 219 |
| 220 // ----------------------------------------------------------------------------- | 220 // ----------------------------------------------------------------------------- |
| 221 // Specific instructions, constants, and masks. | 221 // Specific instructions, constants, and masks. |
| 222 | 222 |
| 223 | |
| 224 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) | 223 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) |
| 225 : AssemblerBase(isolate, buffer, buffer_size), | 224 : AssemblerBase(isolate, buffer, buffer_size), |
| 226 recorded_ast_id_(TypeFeedbackId::None()), | 225 recorded_ast_id_(TypeFeedbackId::None()), |
| 227 constant_pool_builder_(kLoadPtrMaxReachBits, kLoadDoubleMaxReachBits), | 226 constant_pool_builder_(kLoadPtrMaxReachBits, kLoadDoubleMaxReachBits) { |
| 228 positions_recorder_(this) { | |
| 229 reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_); | 227 reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_); |
| 230 | 228 |
| 231 no_trampoline_pool_before_ = 0; | 229 no_trampoline_pool_before_ = 0; |
| 232 trampoline_pool_blocked_nesting_ = 0; | 230 trampoline_pool_blocked_nesting_ = 0; |
| 233 constant_pool_entry_sharing_blocked_nesting_ = 0; | 231 constant_pool_entry_sharing_blocked_nesting_ = 0; |
| 234 next_trampoline_check_ = kMaxInt; | 232 next_trampoline_check_ = kMaxInt; |
| 235 internal_trampoline_exception_ = false; | 233 internal_trampoline_exception_ = false; |
| 236 last_bound_pos_ = 0; | 234 last_bound_pos_ = 0; |
| 237 optimizable_cmpi_pos_ = -1; | 235 optimizable_cmpi_pos_ = -1; |
| 238 trampoline_emitted_ = FLAG_force_long_branches; | 236 trampoline_emitted_ = FLAG_force_long_branches; |
| (...skipping 2219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2458 Memory::Address_at(pc) = buffer_ + pos; | 2456 Memory::Address_at(pc) = buffer_ + pos; |
| 2459 } else if (RelocInfo::IsInternalReferenceEncoded(rmode)) { | 2457 } else if (RelocInfo::IsInternalReferenceEncoded(rmode)) { |
| 2460 // mov sequence | 2458 // mov sequence |
| 2461 intptr_t pos = reinterpret_cast<intptr_t>(target_address_at(pc, code)); | 2459 intptr_t pos = reinterpret_cast<intptr_t>(target_address_at(pc, code)); |
| 2462 set_target_address_at(isolate(), pc, code, buffer_ + pos, | 2460 set_target_address_at(isolate(), pc, code, buffer_ + pos, |
| 2463 SKIP_ICACHE_FLUSH); | 2461 SKIP_ICACHE_FLUSH); |
| 2464 } | 2462 } |
| 2465 | 2463 |
| 2466 reloc_info_writer.Write(&rinfo); | 2464 reloc_info_writer.Write(&rinfo); |
| 2467 } | 2465 } |
| 2468 | |
| 2469 reloc_info_writer.Finish(); | |
| 2470 } | 2466 } |
| 2471 | 2467 |
| 2472 | 2468 |
| 2473 void Assembler::BlockTrampolinePoolFor(int instructions) { | 2469 void Assembler::BlockTrampolinePoolFor(int instructions) { |
| 2474 BlockTrampolinePoolBefore(pc_offset() + instructions * kInstrSize); | 2470 BlockTrampolinePoolBefore(pc_offset() + instructions * kInstrSize); |
| 2475 } | 2471 } |
| 2476 | 2472 |
| 2477 | 2473 |
| 2478 void Assembler::CheckTrampolinePool() { | 2474 void Assembler::CheckTrampolinePool() { |
| 2479 // Some small sequences of instructions must not be broken up by the | 2475 // Some small sequences of instructions must not be broken up by the |
| (...skipping 24 matching lines...) Expand all Loading... |
| 2504 | 2500 |
| 2505 trampoline_ = Trampoline(pc_offset() - size, tracked_branch_count_); | 2501 trampoline_ = Trampoline(pc_offset() - size, tracked_branch_count_); |
| 2506 } | 2502 } |
| 2507 } | 2503 } |
| 2508 | 2504 |
| 2509 | 2505 |
| 2510 } // namespace internal | 2506 } // namespace internal |
| 2511 } // namespace v8 | 2507 } // namespace v8 |
| 2512 | 2508 |
| 2513 #endif // V8_TARGET_ARCH_PPC | 2509 #endif // V8_TARGET_ARCH_PPC |
| OLD | NEW |