Make spinlocks faster (take two)

This change is green on x86 and arm test fleet.
This commit is contained in:
Justine Tunney 2024-07-26 00:44:45 -07:00
parent 02e1cbcd00
commit 59692b0882
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
14 changed files with 122 additions and 79 deletions

View file

@ -24,13 +24,13 @@
#define N 160
static bool IsDangerous(const void *ptr) {
privileged static bool IsDangerous(const void *ptr) {
if (_weaken(kisdangerous))
return _weaken(kisdangerous)(ptr);
return false;
}
static char *FormatHex(char *p, unsigned long x) {
privileged static char *FormatHex(char *p, unsigned long x) {
int k = x ? (__builtin_clzl(x) ^ 63) + 1 : 1;
k = (k + 3) & -4;
while (k > 0)
@ -39,8 +39,8 @@ static char *FormatHex(char *p, unsigned long x) {
return p;
}
dontinstrument const char *(DescribeBacktrace)(char buf[N],
const struct StackFrame *fr) {
privileged dontinstrument const char *(
DescribeBacktrace)(char buf[N], const struct StackFrame *fr) {
char *p = buf;
char *pe = p + N;
bool gotsome = false;