-
Shu-yu Guo authored
This CL moves the external pointer table out of V8_ENABLE_SANDBOX and into V8_COMPRESS_POINTERS. The external pointer table is also useful even when not sandboxing external pointers to ease alignment requirements under pointer compression. It is onerous for the allocator to support non-tagged-size alignment. Under pointer compression, tagged is 4 bytes while system pointers are 8 bytes. Because external pointer table indices are 4-bytes, fields that require natural alignment (e.g. the state field in JSAtomicsMutex) when the system pointer size is 8-bytes can use an indirection via the pointer table to ease the alignment restriction back to 4-bytes under pointer compression. Bug: v8:10391 Change-Id: Iac1200e40c987128cd6a227cd279ba4dac0e5c56 Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3783076Reviewed-by: Samuel Groß <saelo@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81977}
2679a36e