authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-12-17 22:40:53-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-12-17 22:58:56-07:00
logad055099309d0faeb2725764ec441b1ee847ecbf
treeb8dc5389d6b321406b17f91838d10a6f9c00b068
parent9b86dde7b989172329d02092f42a94889b5b0d94

std: align(16) main_thread_tls_buffer

Before this change, thread local variables were landmines if LLVM decided to optimize any writes to them using vector instructions.

1 files changed, 1 insertions(+), 1 deletions(-)

lib/std/os/linux/tls.zig+1-1
...@@ -327,7 +327,7 @@ pub fn prepareTLS(area: []u8) usize {...@@ -327,7 +327,7 @@ pub fn prepareTLS(area: []u8) usize {
327 if (tls_tp_points_past_tcb) tls_image.data_offset else tls_image.tcb_offset;327 if (tls_tp_points_past_tcb) tls_image.data_offset else tls_image.tcb_offset;
328}328}
329329
330var main_thread_tls_buffer: [256]u8 = undefined;330var main_thread_tls_buffer: [256]u8 align(16) = undefined;
331331
332pub fn initStaticTLS() void {332pub fn initStaticTLS() void {
333 initTLS();333 initTLS();