diff --git a/sys/alpha/alpha/exception.s b/sys/alpha/alpha/exception.s index 417c5ddd921..ad9d8a9f30a 100644 --- a/sys/alpha/alpha/exception.s +++ b/sys/alpha/alpha/exception.s @@ -124,6 +124,8 @@ /* syscall number, passed in v0, is first arg, frame pointer second */ mov v0,a0 mov sp,a1 ; .loc 1 __LINE__ + br pv,XentSys1 +XentSys1: LDGP(pv) CALL(syscall) jmp zero, exception_return @@ -147,6 +149,8 @@ LEAF(XentUna, 3) /* XXX should be NESTED */ /* a0, a1, & a2 already set up */ ldiq a3, ALPHA_KENTRY_UNA mov sp, a4 ; .loc 1 __LINE__ + br pv, XentUna1 +XentUna1: LDGP(pv) CALL(trap) jmp zero, exception_return diff --git a/sys/alpha/include/asm.h b/sys/alpha/include/asm.h index d46eb972868..2b4efe0b00e 100644 --- a/sys/alpha/include/asm.h +++ b/sys/alpha/include/asm.h @@ -250,7 +250,10 @@ #define PALVECT(_name_) \ ESETUP(_name_); \ - ERSAVE() + ERSAVE(); \ + br pv, _name_##lgp; \ +_name_##lgp:; \ + LDGP(pv) #define ESETUP(_name_) \ .loc 1 __LINE__; \