| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Redistribution and use in source and binary forms, with or without | 3 // Redistribution and use in source and binary forms, with or without |
| 4 // modification, are permitted provided that the following conditions are | 4 // modification, are permitted provided that the following conditions are |
| 5 // met: | 5 // met: |
| 6 // | 6 // |
| 7 // * Redistributions of source code must retain the above copyright | 7 // * Redistributions of source code must retain the above copyright |
| 8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
| 9 // * Redistributions in binary form must reproduce the above | 9 // * Redistributions in binary form must reproduce the above |
| 10 // copyright notice, this list of conditions and the following | 10 // copyright notice, this list of conditions and the following |
| (...skipping 2336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2347 (pc_limit < (first_const_pool_use_ + kMaxDistToPool))); | 2347 (pc_limit < (first_const_pool_use_ + kMaxDistToPool))); |
| 2348 no_const_pool_before_ = pc_limit; | 2348 no_const_pool_before_ = pc_limit; |
| 2349 } | 2349 } |
| 2350 | 2350 |
| 2351 if (next_buffer_check_ < no_const_pool_before_) { | 2351 if (next_buffer_check_ < no_const_pool_before_) { |
| 2352 next_buffer_check_ = no_const_pool_before_; | 2352 next_buffer_check_ = no_const_pool_before_; |
| 2353 } | 2353 } |
| 2354 } | 2354 } |
| 2355 | 2355 |
| 2356 | 2356 |
| 2357 // TODO(all): We are never trying to emit constant pools after unconditional | |
| 2358 // branches, because we only call it from Assembler::Emit() (or manually). | |
| 2359 // We should try to enable that. | |
| 2360 void Assembler::CheckConstPool(bool force_emit, bool require_jump) { | 2357 void Assembler::CheckConstPool(bool force_emit, bool require_jump) { |
| 2361 // Some short sequence of instruction mustn't be broken up by constant pool | 2358 // Some short sequence of instruction mustn't be broken up by constant pool |
| 2362 // emission, such sequences are protected by calls to BlockConstPoolFor and | 2359 // emission, such sequences are protected by calls to BlockConstPoolFor and |
| 2363 // BlockConstPoolScope. | 2360 // BlockConstPoolScope. |
| 2364 if (is_const_pool_blocked()) { | 2361 if (is_const_pool_blocked()) { |
| 2365 // Something is wrong if emission is forced and blocked at the same time. | 2362 // Something is wrong if emission is forced and blocked at the same time. |
| 2366 ASSERT(!force_emit); | 2363 ASSERT(!force_emit); |
| 2367 return; | 2364 return; |
| 2368 } | 2365 } |
| 2369 | 2366 |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2489 // code. | 2486 // code. |
| 2490 #ifdef ENABLE_DEBUGGER_SUPPORT | 2487 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 2491 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size)); | 2488 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size)); |
| 2492 #endif | 2489 #endif |
| 2493 } | 2490 } |
| 2494 | 2491 |
| 2495 | 2492 |
| 2496 } } // namespace v8::internal | 2493 } } // namespace v8::internal |
| 2497 | 2494 |
| 2498 #endif // V8_TARGET_ARCH_A64 | 2495 #endif // V8_TARGET_ARCH_A64 |
| OLD | NEW |