mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
Merge branch 'master' into master
This commit is contained in:
commit
51b16081d0
3 changed files with 27 additions and 23 deletions
|
|
@ -1,17 +1,17 @@
|
|||
.global __tls_get_offset
|
||||
.type __tls_get_offset,%function
|
||||
__tls_get_offset:
|
||||
ear %r0, %a0
|
||||
sllg %r0, %r0, 32
|
||||
ear %r0, %a1
|
||||
ear %r3, %a0
|
||||
sllg %r3, %r3, 32
|
||||
ear %r3, %a1
|
||||
|
||||
la %r1, 0(%r2, %r12)
|
||||
|
||||
lg %r3, 0(%r1)
|
||||
sllg %r4, %r3, 3
|
||||
lg %r5, 8(%r0)
|
||||
lg %r0, 0(%r1)
|
||||
sllg %r4, %r0, 3
|
||||
lg %r5, 8(%r3)
|
||||
lg %r2, 0(%r4, %r5)
|
||||
ag %r2, 8(%r1)
|
||||
sgr %r2, %r0
|
||||
sgr %r2, %r3
|
||||
|
||||
br %r14
|
||||
|
|
|
|||
|
|
@ -277,14 +277,13 @@ pub fn AlignedManaged(comptime T: type, comptime alignment: ?mem.Alignment) type
|
|||
/// The empty slot is filled from the end of the list.
|
||||
/// This operation is O(1).
|
||||
/// This may not preserve item order. Use `orderedRemove` if you need to preserve order.
|
||||
/// Asserts that the list is not empty.
|
||||
/// Asserts that the index is in bounds.
|
||||
pub fn swapRemove(self: *Self, i: usize) T {
|
||||
if (self.items.len - 1 == i) return self.pop().?;
|
||||
|
||||
const old_item = self.items[i];
|
||||
self.items[i] = self.pop().?;
|
||||
return old_item;
|
||||
const val = self.items[i];
|
||||
self.items[i] = self.items[self.items.len - 1];
|
||||
self.items[self.items.len - 1] = undefined;
|
||||
self.items.len -= 1;
|
||||
return val;
|
||||
}
|
||||
|
||||
/// Append the slice of items to the list. Allocates more
|
||||
|
|
@ -522,6 +521,7 @@ pub fn AlignedManaged(comptime T: type, comptime alignment: ?mem.Alignment) type
|
|||
pub fn pop(self: *Self) ?T {
|
||||
if (self.items.len == 0) return null;
|
||||
const val = self.items[self.items.len - 1];
|
||||
self.items[self.items.len - 1] = undefined;
|
||||
self.items.len -= 1;
|
||||
return val;
|
||||
}
|
||||
|
|
@ -544,8 +544,7 @@ pub fn AlignedManaged(comptime T: type, comptime alignment: ?mem.Alignment) type
|
|||
/// Returns the last element from the list.
|
||||
/// Asserts that the list is not empty.
|
||||
pub fn getLast(self: Self) T {
|
||||
const val = self.items[self.items.len - 1];
|
||||
return val;
|
||||
return self.items[self.items.len - 1];
|
||||
}
|
||||
|
||||
/// Returns the last element from the list, or `null` if list is empty.
|
||||
|
|
@ -956,14 +955,13 @@ pub fn Aligned(comptime T: type, comptime alignment: ?mem.Alignment) type {
|
|||
/// The empty slot is filled from the end of the list.
|
||||
/// Invalidates pointers to last element.
|
||||
/// This operation is O(1).
|
||||
/// Asserts that the list is not empty.
|
||||
/// Asserts that the index is in bounds.
|
||||
pub fn swapRemove(self: *Self, i: usize) T {
|
||||
if (self.items.len - 1 == i) return self.pop().?;
|
||||
|
||||
const old_item = self.items[i];
|
||||
self.items[i] = self.pop().?;
|
||||
return old_item;
|
||||
const val = self.items[i];
|
||||
self.items[i] = self.items[self.items.len - 1];
|
||||
self.items[self.items.len - 1] = undefined;
|
||||
self.items.len -= 1;
|
||||
return val;
|
||||
}
|
||||
|
||||
/// Append the slice of items to the list. Allocates more
|
||||
|
|
@ -1327,6 +1325,7 @@ pub fn Aligned(comptime T: type, comptime alignment: ?mem.Alignment) type {
|
|||
pub fn pop(self: *Self) ?T {
|
||||
if (self.items.len == 0) return null;
|
||||
const val = self.items[self.items.len - 1];
|
||||
self.items[self.items.len - 1] = undefined;
|
||||
self.items.len -= 1;
|
||||
return val;
|
||||
}
|
||||
|
|
@ -1348,8 +1347,7 @@ pub fn Aligned(comptime T: type, comptime alignment: ?mem.Alignment) type {
|
|||
/// Return the last element from the list.
|
||||
/// Asserts that the list is not empty.
|
||||
pub fn getLast(self: Self) T {
|
||||
const val = self.items[self.items.len - 1];
|
||||
return val;
|
||||
return self.items[self.items.len - 1];
|
||||
}
|
||||
|
||||
/// Return the last element from the list, or
|
||||
|
|
|
|||
|
|
@ -322,6 +322,7 @@ const Arm = struct {
|
|||
131 => return error.UnsupportedRegister, // SPSR_ABT
|
||||
132 => return error.UnsupportedRegister, // SPSR_UND
|
||||
133 => return error.UnsupportedRegister, // SPSR_SVC
|
||||
134...142 => return error.UnsupportedRegister, // Reserved
|
||||
143 => return error.UnsupportedRegister, // RA_AUTH_CODE
|
||||
144...150 => return error.UnsupportedRegister, // R8_USR - R14_USR
|
||||
151...157 => return error.UnsupportedRegister, // R8_FIQ - R14_FIQ
|
||||
|
|
@ -329,12 +330,16 @@ const Arm = struct {
|
|||
160...161 => return error.UnsupportedRegister, // R13_ABT - R14_ABT
|
||||
162...163 => return error.UnsupportedRegister, // R13_UND - R14_UND
|
||||
164...165 => return error.UnsupportedRegister, // R13_SVC - R14_SVC
|
||||
166...191 => return error.UnsupportedRegister, // Reserved
|
||||
192...199 => return error.UnsupportedRegister, // wC0 - wC7
|
||||
200...255 => return error.UnsupportedRegister, // Reserved
|
||||
256...287 => return error.UnsupportedRegister, // D0 - D31
|
||||
288...319 => return error.UnsupportedRegister, // Reserved for FP/NEON
|
||||
320 => return error.UnsupportedRegister, // TPIDRURO
|
||||
321 => return error.UnsupportedRegister, // TPIDRURW
|
||||
322 => return error.UnsupportedRegister, // TPIDPR
|
||||
323 => return error.UnsupportedRegister, // HTPIDPR
|
||||
324...8191 => return error.UnsupportedRegister, // Reserved
|
||||
8192...16383 => return error.UnsupportedRegister, // Unspecified vendor co-processor register
|
||||
|
||||
else => return error.InvalidRegister,
|
||||
|
|
@ -393,6 +398,7 @@ const Aarch64 = extern struct {
|
|||
37 => return error.UnsupportedRegister, // TPIDR_EL1
|
||||
38 => return error.UnsupportedRegister, // TPIDR_EL2
|
||||
39 => return error.UnsupportedRegister, // TPIDR_EL3
|
||||
40...45 => return error.UnsupportedRegister, // Reserved
|
||||
46 => return error.UnsupportedRegister, // VG
|
||||
47 => return error.UnsupportedRegister, // FFR
|
||||
48...63 => return error.UnsupportedRegister, // P0 - P15
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue