authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2019-05-03 13:11:53+02:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2019-05-04 08:44:26+02:00
logb612512bb500defd399a11dfa47c83cefe4d87b5
tree814da7387441ee9d5ee7498b7dd40c14492db3ab
parentfca3e3a73f157d93ae3d57f90c13512acfbe9aa4

std: Remove some assumptions about the host platform

The stdlib is now 32-bit friendly.

5 files changed, 10 insertions(+), 9 deletions(-)

std/crypto/chacha20.zig+3-2
...@@ -142,7 +142,7 @@ pub fn chaCha20With64BitNonce(out: []u8, in: []const u8, counter: u64, key: [32]...@@ -142,7 +142,7 @@ pub fn chaCha20With64BitNonce(out: []u8, in: []const u8, counter: u64, key: [32]
142 assert(in.len >= out.len);142 assert(in.len >= out.len);
143 assert(counter +% (in.len >> 6) >= counter);143 assert(counter +% (in.len >> 6) >= counter);
144144
145 var cursor: u64 = 0;145 var cursor: usize = 0;
146 var k: [8]u32 = undefined;146 var k: [8]u32 = undefined;
147 var c: [4]u32 = undefined;147 var c: [4]u32 = undefined;
148148
...@@ -161,7 +161,8 @@ pub fn chaCha20With64BitNonce(out: []u8, in: []const u8, counter: u64, key: [32]...@@ -161,7 +161,8 @@ pub fn chaCha20With64BitNonce(out: []u8, in: []const u8, counter: u64, key: [32]
161 c[3] = mem.readIntSliceLittle(u32, nonce[4..8]);161 c[3] = mem.readIntSliceLittle(u32, nonce[4..8]);
162162
163 const block_size = (1 << 6);163 const block_size = (1 << 6);
164 const big_block = (block_size << 32);164 // The full block size is greater than the address space on a 32bit machine
165 const big_block = if (@sizeOf(usize) > 4) (block_size << 32) else maxInt(usize);
165166
166 // first partial big block167 // first partial big block
167 if (((@intCast(u64, maxInt(u32) - @truncate(u32, counter)) + 1) << 6) < in.len) {168 if (((@intCast(u64, maxInt(u32) - @truncate(u32, counter)) + 1) << 6) < in.len) {
std/heap.zig+1-1
...@@ -601,7 +601,7 @@ test "ArenaAllocator" {...@@ -601,7 +601,7 @@ test "ArenaAllocator" {
601 try testAllocatorAlignedShrink(&arena_allocator.allocator);601 try testAllocatorAlignedShrink(&arena_allocator.allocator);
602}602}
603603
604var test_fixed_buffer_allocator_memory: [40000 * @sizeOf(usize)]u8 = undefined;604var test_fixed_buffer_allocator_memory: [40000 * @sizeOf(u64)]u8 = undefined;
605test "FixedBufferAllocator" {605test "FixedBufferAllocator" {
606 var fixed_buffer_allocator = FixedBufferAllocator.init(test_fixed_buffer_allocator_memory[0..]);606 var fixed_buffer_allocator = FixedBufferAllocator.init(test_fixed_buffer_allocator_memory[0..]);
607607
std/os/linux.zig+2-2
...@@ -1100,8 +1100,8 @@ pub fn sigaction(sig: u6, noalias act: *const Sigaction, noalias oact: ?*Sigacti...@@ -1100,8 +1100,8 @@ pub fn sigaction(sig: u6, noalias act: *const Sigaction, noalias oact: ?*Sigacti
11001100
1101const NSIG = 65;1101const NSIG = 65;
1102const sigset_t = [128 / @sizeOf(usize)]usize;1102const sigset_t = [128 / @sizeOf(usize)]usize;
1103const all_mask = []usize{maxInt(usize)};1103const all_mask = []u32{0xffffffff, 0xffffffff};
1104const app_mask = []usize{0xfffffffc7fffffff};1104const app_mask = []u32{0xfffffffc, 0x7fffffff};
11051105
1106const k_sigaction = extern struct {1106const k_sigaction = extern struct {
1107 handler: extern fn (i32) void,1107 handler: extern fn (i32) void,
std/os/time.zig+2-2
...@@ -31,8 +31,8 @@ pub fn sleep(nanoseconds: u64) void {...@@ -31,8 +31,8 @@ pub fn sleep(nanoseconds: u64) void {
3131
32pub fn posixSleep(seconds: u63, nanoseconds: u63) void {32pub fn posixSleep(seconds: u63, nanoseconds: u63) void {
33 var req = posix.timespec{33 var req = posix.timespec{
34 .tv_sec = seconds,34 .tv_sec = @intCast(isize, seconds),
35 .tv_nsec = nanoseconds,35 .tv_nsec = @intCast(isize, nanoseconds),
36 };36 };
37 var rem: posix.timespec = undefined;37 var rem: posix.timespec = undefined;
38 while (true) {38 while (true) {
std/rand.zig+2-2
...@@ -768,10 +768,10 @@ pub const Isaac64 = struct {...@@ -768,10 +768,10 @@ pub const Isaac64 = struct {
768 const x = self.m[base + m1];768 const x = self.m[base + m1];
769 self.a = mix +% self.m[base + m2];769 self.a = mix +% self.m[base + m2];
770770
771 const y = self.a +% self.b +% self.m[(x >> 3) % self.m.len];771 const y = self.a +% self.b +% self.m[@intCast(usize, (x >> 3) % self.m.len)];
772 self.m[base + m1] = y;772 self.m[base + m1] = y;
773773
774 self.b = x +% self.m[(y >> 11) % self.m.len];774 self.b = x +% self.m[@intCast(usize, (y >> 11) % self.m.len)];
775 self.r[self.r.len - 1 - base - m1] = self.b;775 self.r[self.r.len - 1 - base - m1] = self.b;
776 }776 }
777777