x86_64: implement pointer addition and subtraction

This commit is contained in:
Jacob Young 2025-01-05 01:10:52 -05:00
parent 0d9079f466
commit 3240adfa16
2 changed files with 412 additions and 60 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,13 +4,19 @@ fn access(comptime array: anytype) !void {
inline for (0.., &array) |ct_index, *elem| {
var rt_index: usize = undefined;
rt_index = ct_index;
if (&(slice.ptr + ct_index)[0] != elem) return error.Unexpected;
if (&(slice.ptr + rt_index)[0] != elem) return error.Unexpected;
if (&slice.ptr[ct_index..][0] != elem) return error.Unexpected;
if (&slice.ptr[rt_index..][0] != elem) return error.Unexpected;
if (&slice.ptr[ct_index] != elem) return error.Unexpected;
if (&slice[ct_index] != elem) return error.Unexpected;
if (&slice.ptr[rt_index] != elem) return error.Unexpected;
if (&slice[ct_index..].ptr[0] != elem) return error.Unexpected;
if (&slice[rt_index..].ptr[0] != elem) return error.Unexpected;
if (&slice[ct_index] != elem) return error.Unexpected;
if (&slice[rt_index] != elem) return error.Unexpected;
if (slice.ptr[ct_index] != elem.*) return error.Unexpected;
if (slice[ct_index] != elem.*) return error.Unexpected;
if (slice.ptr[rt_index] != elem.*) return error.Unexpected;
if (slice[ct_index] != elem.*) return error.Unexpected;
if (slice[rt_index] != elem.*) return error.Unexpected;
}
}