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 |