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 1420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1431 // Code generation | 1431 // Code generation |
1432 // The relocation writer's position is at least kGap bytes below the end of | 1432 // The relocation writer's position is at least kGap bytes below the end of |
1433 // the generated instructions. This is so that multi-instruction sequences do | 1433 // the generated instructions. This is so that multi-instruction sequences do |
1434 // not have to check for overflow. The same is true for writes of large | 1434 // not have to check for overflow. The same is true for writes of large |
1435 // relocation info entries. | 1435 // relocation info entries. |
1436 static constexpr int kGap = 32; | 1436 static constexpr int kGap = 32; |
1437 | 1437 |
1438 RelocInfoWriter reloc_info_writer; | 1438 RelocInfoWriter reloc_info_writer; |
1439 | 1439 |
1440 private: | 1440 private: |
| 1441 // Avoid overflows for displacements etc. |
| 1442 static const int kMaximalBufferSize = 512 * MB; |
| 1443 |
1441 // Repeated checking whether the trampoline pool should be emitted is rather | 1444 // Repeated checking whether the trampoline pool should be emitted is rather |
1442 // expensive. By default we only check again once a number of instructions | 1445 // expensive. By default we only check again once a number of instructions |
1443 // has been generated. | 1446 // has been generated. |
1444 int next_trampoline_check_; // pc offset of next buffer check. | 1447 int next_trampoline_check_; // pc offset of next buffer check. |
1445 | 1448 |
1446 // Emission of the trampoline pool may be blocked in some code sequences. | 1449 // Emission of the trampoline pool may be blocked in some code sequences. |
1447 int trampoline_pool_blocked_nesting_; // Block emission if this is not zero. | 1450 int trampoline_pool_blocked_nesting_; // Block emission if this is not zero. |
1448 int no_trampoline_pool_before_; // Block emission before this pc offset. | 1451 int no_trampoline_pool_before_; // Block emission before this pc offset. |
1449 | 1452 |
1450 // Do not share constant pool entries. | 1453 // Do not share constant pool entries. |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1554 PatchingAssembler(IsolateData isolate_data, byte* address, int instructions); | 1557 PatchingAssembler(IsolateData isolate_data, byte* address, int instructions); |
1555 ~PatchingAssembler(); | 1558 ~PatchingAssembler(); |
1556 | 1559 |
1557 void FlushICache(Isolate* isolate); | 1560 void FlushICache(Isolate* isolate); |
1558 }; | 1561 }; |
1559 | 1562 |
1560 } // namespace internal | 1563 } // namespace internal |
1561 } // namespace v8 | 1564 } // namespace v8 |
1562 | 1565 |
1563 #endif // V8_PPC_ASSEMBLER_PPC_H_ | 1566 #endif // V8_PPC_ASSEMBLER_PPC_H_ |
OLD | NEW |