root/arch/alpha/kernel/entry.S

/* [previous][next][first][last][top][bottom][index][help] */
   1 /*
   2  * alpha/entry.S
   3  *
   4  * kernel entry-points
   5  */
   6 
   7 #include <asm/system.h>
   8 
   9 #define halt    .long PAL_halt
  10 #define rti     .long PAL_rti
  11 
  12 /*
  13  * This defines the normal kernel pt-regs layout.
  14  *
  15  * regs 9-15 preserved by C code
  16  * regs 16-18 saved by PAL-code
  17  * regs 29-30 saved and set up by PAL-code
  18  */
  19 #define SAVE_ALL                        \
  20         subq    $30,160,$30;            \
  21         stq     $0,0($30);              \
  22         stq     $1,8($30);              \
  23         stq     $2,16($30);             \
  24         stq     $3,24($30);             \
  25         stq     $4,32($30);             \
  26         stq     $5,40($30);             \
  27         stq     $6,48($30);             \
  28         stq     $7,56($30);             \
  29         stq     $8,64($30);             \
  30         stq     $19,72($30);            \
  31         stq     $20,80($30);            \
  32         stq     $21,88($30);            \
  33         stq     $22,96($30);            \
  34         stq     $23,104($30);           \
  35         stq     $24,112($30);           \
  36         stq     $25,120($30);           \
  37         stq     $26,128($30);           \
  38         stq     $27,136($30);           \
  39         stq     $28,144($30)
  40 
  41 #define RESTORE_ALL                     \
  42         ldq     $0,0($30);              \
  43         ldq     $1,8($30);              \
  44         ldq     $2,16($30);             \
  45         ldq     $3,24($30);             \
  46         ldq     $4,32($30);             \
  47         ldq     $5,40($30);             \
  48         ldq     $6,48($30);             \
  49         ldq     $7,56($30);             \
  50         ldq     $8,64($30);             \
  51         ldq     $19,72($30);            \
  52         ldq     $20,80($30);            \
  53         ldq     $21,88($30);            \
  54         ldq     $22,96($30);            \
  55         ldq     $23,104($30);           \
  56         ldq     $24,112($30);           \
  57         ldq     $25,120($30);           \
  58         ldq     $26,128($30);           \
  59         ldq     $27,136($30);           \
  60         ldq     $28,144($30);           \
  61         addq    $30,160,$30
  62 
  63 .text
  64 .set noat
  65 
  66 .align 5
  67 .globl  entInt
  68 .ent    entInt
  69 entInt:
  70         SAVE_ALL
  71         bis     $30,$30,$19
  72         lda     $27,do_entInt
  73         jsr     $26,($27),do_entInt
  74         RESTORE_ALL
  75         rti
  76 .end entInt
  77 
  78 .align 5
  79 .globl  entMM
  80 .ent    entMM
  81 entMM:
  82         SAVE_ALL
  83         bis     $30,$30,$19
  84         lda     $27,do_page_fault
  85         jsr     $26,($27),do_page_fault
  86         RESTORE_ALL
  87         rti
  88 .end entMM
  89 
  90 .align 5
  91 .globl  entArith
  92 .ent    entArith
  93 entArith:
  94         SAVE_ALL
  95         bis     $30,$30,$19
  96         lda     $27,do_entArith
  97         jsr     $26,($27),do_entArith
  98         RESTORE_ALL
  99         rti
 100 .end entArith
 101 
 102 .align 5
 103 .globl  entIF
 104 .ent    entIF
 105 entIF:
 106         SAVE_ALL
 107         bis     $30,$30,$19
 108         lda     $27,do_entIF
 109         jsr     $26,($27),do_entIF
 110         RESTORE_ALL
 111         rti
 112 .end entIF
 113 
 114 .align 5
 115 .globl  entUna
 116 .ent    entUna
 117 entUna:
 118         SAVE_ALL
 119         bis     $30,$30,$19
 120         lda     $27,do_entUna
 121         jsr     $26,($27),do_entUna
 122         RESTORE_ALL
 123         rti
 124 .end entUna
 125 
 126         .align 5
 127         .globl sys_call_table
 128 sys_call_table:
 129         .quad 0

/* [previous][next][first][last][top][bottom][index][help] */