ABI breaker: Move the J_SIGMASK field in the jmpbuf before
the J_SIG0 field. While here, rename J_SIG0 to J_SIGSET and remove J_SIG1. The main reason for this change is that the 128-bit sigset_t is now aligned on a 16-byte boundary, which allows us to use 16-byte atomic loads and stores on CPUs that support it. The removal of J_SIG1 is done to avoid confusion: it is never accessed and should not be. Renaming J_SIG0 to J_SIGSET is the icing on the cake that's better done now than later.
This commit is contained in:
parent
c266c8aa6c
commit
a402169a8e
@ -50,7 +50,7 @@ ENTRY(setjmp, 1)
|
||||
;;
|
||||
mov out0=1 // how = SIG_BLOCK
|
||||
mov out1=0 // set = NULL
|
||||
add out2=J_SIG0,in0 // oset = &jb[J_SIG0]
|
||||
add out2=J_SIGSET,in0 // oset = &jb[J_SIGSET]
|
||||
br.call.sptk.few rp=__sys_sigprocmask
|
||||
;;
|
||||
mov rp=loc1
|
||||
@ -68,7 +68,7 @@ ENTRY(__longjmp, 2)
|
||||
mov loc1=rp
|
||||
;;
|
||||
mov out0=3 // how = SIG_SETMASK
|
||||
add out1=J_SIG0,in0 // set = &jb[J_SIG0]
|
||||
add out1=J_SIGSET,in0 // set = &jb[J_SIGSET]
|
||||
mov out2=0 // oset = NULL
|
||||
br.call.sptk.few rp=__sys_sigprocmask
|
||||
;;
|
||||
|
@ -86,9 +86,8 @@
|
||||
#define J_B3 0x1c0
|
||||
#define J_B4 0x1c8
|
||||
#define J_B5 0x1d0
|
||||
#define J_SIG0 0x1d8
|
||||
#define J_SIG1 0x1e0
|
||||
#define J_SIGMASK 0x1e8
|
||||
#define J_SIGMASK 0x1d8
|
||||
#define J_SIGSET 0x1e0
|
||||
#endif /* __BSD_VISIBLE */
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user