blob: df4817d943ea934af46873f5b32a36f5eee2aaf6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
// Copyright 2022-2023 Gabriel Jensen.
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
.globl zap_syscall
zap_syscall:
// System calls on ARM64 use the following registers:
// x0 : System call identifier
// x1 : First parameter
// x2 : Second parameter
// x3 : Third parameter
// x4 : Fourth parameter
// x5 : Fifth parameter
// x6 : Sixth parameter
// x0 : Return value
mov x8,x0 // Move the first parameter (the identifier) to x8.
mov x0,x1 // Shift all of the other parameters to the left.
mov x1,x2
mov x2,x3
mov x3,x4
mov x4,x5
mov x5,x6
svc 0x0 // Zephyr
// No need to move the return value (already in x0).
ret
|