The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/powerpc/powerpc/setjmp.S

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $FreeBSD: releng/6.2/sys/powerpc/powerpc/setjmp.S 99731 2002-07-10 12:26:17Z benno $  */
    2 /*      from:   NetBSD: setjmp.S,v 1.1 1998/01/27 15:13:12 sakamoto Exp $  */
    3 /*      from:   OpenBSD: setjmp.S,v 1.2 1996/12/28 06:22:18 rahnds Exp  */
    4 /* kernel version of this file, does not have signal goop */
    5 /* int setjmp(jmp_buf env) */
    6 
    7 #define JMP_r1  0x04
    8 #define JMP_r14 0x08
    9 #define JMP_r15 0x0c
   10 #define JMP_r16 0x10
   11 #define JMP_r17 0x14
   12 #define JMP_r18 0x18
   13 #define JMP_r19 0x1c
   14 #define JMP_r20 0x20
   15 #define JMP_r21 0x24
   16 #define JMP_r22 0x28
   17 #define JMP_r23 0x2c
   18 #define JMP_r24 0x30
   19 #define JMP_r25 0x34
   20 #define JMP_r26 0x38
   21 #define JMP_r27 0x3c
   22 #define JMP_r28 0x40
   23 #define JMP_r29 0x44
   24 #define JMP_r30 0x48
   25 #define JMP_r31 0x4c
   26 #define JMP_lr  0x50
   27 #define JMP_cr  0x54
   28 #define JMP_ctr 0x58
   29 #define JMP_xer 0x5c
   30 #define JMP_sig 0x60
   31 
   32 
   33 .globl setjmp
   34 setjmp:
   35         stw 31, JMP_r31(3)
   36         /* r1, r14-r30 */
   37         stw 1,  JMP_r1 (3)
   38         stw 14, JMP_r14(3)
   39         stw 15, JMP_r15(3)
   40         stw 16, JMP_r16(3)
   41         stw 17, JMP_r17(3)
   42         stw 18, JMP_r18(3)
   43         stw 19, JMP_r19(3)
   44         stw 20, JMP_r20(3)
   45         stw 21, JMP_r21(3)
   46         stw 22, JMP_r22(3)
   47         stw 23, JMP_r23(3)
   48         stw 24, JMP_r24(3)
   49         stw 25, JMP_r25(3)
   50         stw 26, JMP_r26(3)
   51         stw 27, JMP_r27(3)
   52         stw 28, JMP_r28(3)
   53         stw 29, JMP_r29(3)
   54         stw 30, JMP_r30(3)
   55         /* cr, lr, ctr, xer */
   56         mfcr 0
   57         stw 0, JMP_cr(3)
   58         mflr 0
   59         stw 0, JMP_lr(3)
   60         mfctr 0
   61         stw 0, JMP_ctr(3)
   62         mfxer 0
   63         stw 0, JMP_xer(3)
   64         /* f14-f31, fpscr */
   65         li 3, 0
   66         blr
   67 
   68 
   69 .extern sigsetmask
   70 .globl longjmp
   71 longjmp:
   72         lwz 31, JMP_r31(3)
   73         /* r1, r14-r30 */
   74         lwz 1,  JMP_r1 (3)
   75         lwz 14, JMP_r14(3)
   76         lwz 15, JMP_r15(3)
   77         lwz 16, JMP_r16(3)
   78         lwz 17, JMP_r17(3)
   79         lwz 18, JMP_r18(3)
   80         lwz 19, JMP_r19(3)
   81         lwz 20, JMP_r20(3)
   82         lwz 21, JMP_r21(3)
   83         lwz 22, JMP_r22(3)
   84         lwz 23, JMP_r23(3)
   85         lwz 24, JMP_r24(3)
   86         lwz 25, JMP_r25(3)
   87         lwz 26, JMP_r26(3)
   88         lwz 27, JMP_r27(3)
   89         lwz 28, JMP_r28(3)
   90         lwz 29, JMP_r29(3)
   91         lwz 30, JMP_r30(3)
   92         /* cr, lr, ctr, xer */
   93         lwz 0, JMP_cr(3)
   94         mtcr 0
   95         lwz 0, JMP_lr(3)
   96         mtlr 0
   97         lwz 0, JMP_ctr(3)
   98         mtctr 0
   99         lwz 0, JMP_xer(3)
  100         mtxer 0
  101         /* f14-f31, fpscr */
  102         mr 3, 4
  103         blr

Cache object: ebf0735c108762c68463106f24e7787b


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.