| 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 2530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2541 | 2541 |
| 2542 int jump_instr = require_jump ? kInstructionSize : 0; | 2542 int jump_instr = require_jump ? kInstructionSize : 0; |
| 2543 int size_pool_marker = kInstructionSize; | 2543 int size_pool_marker = kInstructionSize; |
| 2544 int size_pool_guard = kInstructionSize; | 2544 int size_pool_guard = kInstructionSize; |
| 2545 int pool_size = jump_instr + size_pool_marker + size_pool_guard + | 2545 int pool_size = jump_instr + size_pool_marker + size_pool_guard + |
| 2546 num_pending_reloc_info_ * kPointerSize; | 2546 num_pending_reloc_info_ * kPointerSize; |
| 2547 int needed_space = pool_size + kGap; | 2547 int needed_space = pool_size + kGap; |
| 2548 | 2548 |
| 2549 // Emit veneers for branches that would go out of range during emission of the | 2549 // Emit veneers for branches that would go out of range during emission of the |
| 2550 // constant pool. | 2550 // constant pool. |
| 2551 CheckVeneerPool(require_jump, kVeneerDistanceMargin - pool_size); | 2551 CheckVeneerPool(require_jump, kVeneerDistanceMargin + pool_size); |
| 2552 | 2552 |
| 2553 Label size_check; | 2553 Label size_check; |
| 2554 bind(&size_check); | 2554 bind(&size_check); |
| 2555 | 2555 |
| 2556 // Check that the code buffer is large enough before emitting the constant | 2556 // Check that the code buffer is large enough before emitting the constant |
| 2557 // pool (include the jump over the pool, the constant pool marker, the | 2557 // pool (include the jump over the pool, the constant pool marker, the |
| 2558 // constant pool guard, and the gap to the relocation information). | 2558 // constant pool guard, and the gap to the relocation information). |
| 2559 while (buffer_space() <= needed_space) { | 2559 while (buffer_space() <= needed_space) { |
| 2560 GrowBuffer(); | 2560 GrowBuffer(); |
| 2561 } | 2561 } |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2772 // code. | 2772 // code. |
| 2773 #ifdef ENABLE_DEBUGGER_SUPPORT | 2773 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 2774 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size)); | 2774 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size)); |
| 2775 #endif | 2775 #endif |
| 2776 } | 2776 } |
| 2777 | 2777 |
| 2778 | 2778 |
| 2779 } } // namespace v8::internal | 2779 } } // namespace v8::internal |
| 2780 | 2780 |
| 2781 #endif // V8_TARGET_ARCH_A64 | 2781 #endif // V8_TARGET_ARCH_A64 |
| OLD | NEW |