|
13 | 13 | ; args "callback", "context" are in x0, x1
|
14 | 14 | ; push non-volatile x18-x28 registers, in addition to fp,rl pair.
|
15 | 15 | ; x29 is fp, x30 is lr.
|
16 |
| - stp x29, x30, [sp, -176]! ; store fp,lr pair, allocate stack space |
| 16 | + stp x29, x30, [sp, #-176]! ; store fp,lr pair, allocate stack space |
17 | 17 | mov x29, sp ; and set fp pointing to old fp on stack
|
18 | 18 | ; push non-volatile registers 18-x28 and fp regs d8-d15)
|
19 | 19 | ; also fpcr (fp control register)
|
20 | 20 | mrs x2,fpcr
|
21 |
| - stp x2, x18, [sp, 16] |
22 |
| - stp x19, x20, [sp, 32] |
23 |
| - stp x21, x22, [sp, 48] |
24 |
| - stp x23, x24, [sp, 64] |
25 |
| - stp x25, x26, [sp, 80] |
26 |
| - stp x27, x28, [sp, 96] |
27 |
| - stp d8, d9, [sp, 112] |
28 |
| - stp d10, d11, [sp, 128] |
29 |
| - stp d12, d13, [sp, 144] |
30 |
| - stp d14, d15, [sp, 160] |
| 21 | + stp x2, x18, [sp, #16] |
| 22 | + stp x19, x20, [sp, #32] |
| 23 | + stp x21, x22, [sp, #48] |
| 24 | + stp x23, x24, [sp, #64] |
| 25 | + stp x25, x26, [sp, #80] |
| 26 | + stp x27, x28, [sp, #96] |
| 27 | + stp d8, d9, [sp, #112] |
| 28 | + stp d10, d11, [sp, #128] |
| 29 | + stp d12, d13, [sp, #144] |
| 30 | + stp d14, d15, [sp, #160] |
31 | 31 |
|
32 | 32 | ; args are x0=callback, x1=context
|
33 | 33 | ; shuffle calling arguments into r0, r1 and r2
|
|
50 | 50 | blr x18 ;second callback
|
51 | 51 |
|
52 | 52 | ; restore registers from stack
|
53 |
| - ldp x2, x18, [sp, 16] |
54 |
| - ldp x19, x20, [sp, 32] |
55 |
| - ldp x21, x22, [sp, 48] |
56 |
| - ldp x23, x24, [sp, 64] |
57 |
| - ldp x25, x26, [sp, 80] |
58 |
| - ldp x27, x28, [sp, 96] |
59 |
| - ldp d8, d9, [sp, 112] |
60 |
| - ldp d10, d11, [sp, 128] |
61 |
| - ldp d12, d13, [sp, 144] |
62 |
| - ldp d14, d15, [sp, 160] |
63 |
| - msr fpcr,x2 |
| 53 | + ldp x2, x18, [sp, #16] |
| 54 | + ldp x19, x20, [sp, #32] |
| 55 | + ldp x21, x22, [sp, #48] |
| 56 | + ldp x23, x24, [sp, #64] |
| 57 | + ldp x25, x26, [sp, #80] |
| 58 | + ldp x27, x28, [sp, #96] |
| 59 | + ldp d8, d9, [sp, #112] |
| 60 | + ldp d10, d11, [sp, #128] |
| 61 | + ldp d12, d13, [sp, #144] |
| 62 | + ldp d14, d15, [sp, #160] |
| 63 | + msr fpcr, x2 |
64 | 64 | ;return
|
65 |
| - ldp x29, x30, [sp], 176 |
| 65 | + ldp x29, x30, [sp], #176 |
66 | 66 | ret
|
67 | 67 | ENDP
|
68 | 68 |
|
|
72 | 72 | ; args "callback", "context" are in x0, x1
|
73 | 73 | ; push non-volatile x18-x28 registers, in addition to fp,rl pair.
|
74 | 74 | ; x29 is fp, x30 is lr.
|
75 |
| - stp x29, x30, [sp, -32]! ; store fp,lr pair, allocate stack space |
| 75 | + stp x29, x30, [sp, #-32]! ; store fp,lr pair, allocate stack space |
76 | 76 | mov x29, sp ; and set fp pointing to old fp on stack
|
77 | 77 | ; push non-volatile register 18
|
78 |
| - str x18, [sp, 16] |
| 78 | + str x18, [sp, #16] |
79 | 79 |
|
80 | 80 | ; args are x0 = callback, x1 = context, x2=stack
|
81 | 81 | mov x3, x0
|
|
94 | 94 | mov sp, x18
|
95 | 95 |
|
96 | 96 | ; return
|
97 |
| - ldr x18, [sp, 16] |
98 |
| - ldp x29, x30, [sp], 32 |
| 97 | + ldr x18, [sp, #16] |
| 98 | + ldp x29, x30, [sp], #32 |
99 | 99 | ret
|
100 | 100 | ENDP
|
101 | 101 |
|
|
0 commit comments