_sig_catch.s 327 B

123456789101112131415161718192021
  1. #include "SYS.h"
  2. LABEL__(sig_catch)
  3. save %sp, %g4, %sp
  4. mov %fp, %l0 ! get new EM frame pointer
  5. dec 4, %l0
  6. st %i0, [%l0] ! push signal number on EM stack
  7. set $_sig_funcs, %l1
  8. dec 1, %i0
  9. sll %i0, 2, %l2
  10. add %l1, %l2, %l3
  11. ld [%l3], %l2 ! get signal handler into %l2
  12. call %l2
  13. nop
  14. restore
  15. retl
  16. add %sp,%g4,%sp