~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/alpha/boot/head.S

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*
  3  * arch/alpha/boot/head.S
  4  *
  5  * initial bootloader stuff..
  6  */
  7 
  8 #include <asm/pal.h>
  9 
 10         .set noreorder
 11         .globl  __start
 12         .ent    __start
 13 __start:
 14         br      $29,2f
 15 2:      ldgp    $29,0($29)
 16         jsr     $26,start_kernel
 17         call_pal PAL_halt
 18         .end __start
 19 
 20         .align 5
 21         .globl  wrent
 22         .ent    wrent
 23 wrent:
 24         .prologue 0
 25         call_pal PAL_wrent
 26         ret ($26)
 27         .end wrent
 28 
 29         .align 5
 30         .globl  wrkgp
 31         .ent    wrkgp
 32 wrkgp:
 33         .prologue 0
 34         call_pal PAL_wrkgp
 35         ret ($26)
 36         .end wrkgp
 37 
 38         .align 5
 39         .globl  switch_to_osf_pal
 40         .ent    switch_to_osf_pal
 41 switch_to_osf_pal:
 42         subq    $30,128,$30
 43         .frame  $30,128,$26
 44         stq     $26,0($30)
 45         stq     $1,8($30)
 46         stq     $2,16($30)
 47         stq     $3,24($30)
 48         stq     $4,32($30)
 49         stq     $5,40($30)
 50         stq     $6,48($30)
 51         stq     $7,56($30)
 52         stq     $8,64($30)
 53         stq     $9,72($30)
 54         stq     $10,80($30)
 55         stq     $11,88($30)
 56         stq     $12,96($30)
 57         stq     $13,104($30)
 58         stq     $14,112($30)
 59         stq     $15,120($30)
 60         .prologue 0
 61 
 62         stq     $30,0($17)      /* save KSP in PCB */
 63 
 64         bis     $30,$30,$20     /* a4 = KSP */
 65         br      $17,1f
 66 
 67         ldq     $26,0($30)
 68         ldq     $1,8($30)
 69         ldq     $2,16($30)
 70         ldq     $3,24($30)
 71         ldq     $4,32($30)
 72         ldq     $5,40($30)
 73         ldq     $6,48($30)
 74         ldq     $7,56($30)
 75         ldq     $8,64($30)
 76         ldq     $9,72($30)
 77         ldq     $10,80($30)
 78         ldq     $11,88($30)
 79         ldq     $12,96($30)
 80         ldq     $13,104($30)
 81         ldq     $14,112($30)
 82         ldq     $15,120($30)
 83         addq    $30,128,$30
 84         ret ($26)
 85 1:      call_pal PAL_swppal
 86         .end    switch_to_osf_pal
 87 
 88         .align 3
 89         .globl  tbi
 90         .ent    tbi
 91 tbi:
 92         .prologue 0
 93         call_pal PAL_tbi
 94         ret     ($26)
 95         .end tbi
 96 
 97         .align 3
 98         .globl  halt
 99         .ent    halt
100 halt:
101         .prologue 0
102         call_pal PAL_halt
103         .end halt
104 
105 /* $16 - new stack page */
106         .align 3
107         .globl  move_stack
108         .ent    move_stack
109 move_stack:
110         .prologue 0
111         lda     $0, 0x1fff($31)
112         and     $0, $30, $1                     /* Stack offset */
113         or      $1, $16, $16                    /* New stack pointer */
114         mov     $30, $1
115         mov     $16, $2
116 1:      ldq     $3, 0($1)                       /* Move the stack */
117         addq    $1, 8, $1
118         stq     $3, 0($2)
119         and     $0, $1, $4
120         addq    $2, 8, $2
121         bne     $4, 1b
122         mov     $16, $30
123         ret     ($26)
124         .end move_stack

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php