Test initialisation of MUIA_List_AdjustWidth and MUIA_List_AdjustHeight, and
[AROS.git] / arch / .unmaintained / arm-all / exec / sys_swi_handler.S
blob679e5bca11095e9e644493b2bb253551ce52987f
1 /*   Copyright © 1995-2003, The AROS Development Team. All rights reserved.
2     $Id$
3 */
5         
6         .data
7         .globl  jumptable
8         .align  4
9         .type   jumptable,object
10         .size   jumptable,16
11 jumptable:
12         .word   sys_Dispatch         // d7 = 0
13         .word   _sys_SetSR            // d7 = 4
14         .word   0 // _sys_Supervisor       // d7 = 8
15         .word   0 //_sys_SuperState       // d7 = 12
20         .text
21         .align  2
22         .globl  _sys_swi_handler
23         .type   _sys_swi_handler,function
25 _sys_swi_handler:
26         sub     sp, sp, #(17*4)
27         stmia   sp, {r0-r12}
28         add     r8, sp, #(13*4)
29         stmia   r8, {sp, lr}^
30         nop
31         str     lr, [sp, #(15*4)]
32         mrs     r8, spsr
33         str     r8, [sp, #(16*4)]
35         ldr     r3, [lr, #-4]
36         bic     r3, r3, #0xff000000
37         ldr     r2, .jumptable
40         mov     r0, sp
41         mov     r1, #-4   // adjustment factor for regs->lr_svc due to swi
42         mov     lr, pc
43         ldr     pc, [r2, r3, lsl #2]
44         nop
45         ldr     r0, [sp, #(16*4)]
46         msr     spsr, r0
47         ldr     lr, [sp, #(15*4)]
48         ldmia   sp, {r0-lr}^
49         nop
51         add     sp,sp,#(17*4)
53         movs    pc, lr
55         .globl  .jumptable
56         .align  4
57         .type   .jumptable,object
58         .size   .jumptable,4
59 .jumptable:
60         .word   jumptable