Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [nathanw_sa] basesrc/lib/libpthread/arch/arm



Module Name:    basesrc
Committed By:   thorpej
Date:           Wed Nov 21 18:24:39 UTC 2001

Modified Files:
        basesrc/lib/libpthread/arch/arm [nathanw_sa]: _context_u.S

Log Message:
Some improvements, based on suggestions from Ben Harris:
* Don't need to save CPSR in GETC(), since it's a callee-saved
  register.  However, stuff a fake one (that indicates USR32 mode)
  into the ucontext in case it is used later in a setcontext(2)
  system call (as is done in one of Nathan's regression tests; this
  last bit from me).
* Only restore CPSR if ! _UC_USER (i.e. context was created by
  getcontext(2)).
* Determine at run-time if we're in USR26 or USR32 by forcing the Z
  flag to be set and then comparing the PC portion of R15 to all of
  R15 (if they're not equal, we're in 26-bit mode).
* Restore banked regs properly in 26-bit mode.

Plus one from me: Don't or _UC_USER | _UC_CPU into uc_flags; set uc_flags
to that value instead.


To generate a diff of this commit:
cvs rdiff -r1.1.2.4 -r1.1.2.5 basesrc/lib/libpthread/arch/arm/_context_u.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index