summaryrefslogtreecommitdiff
path: root/src/internal/powerpc64/syscall.s
blob: fe21f9e15da7d5cfd7743f55043b5e93d7dc50b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
	.global __syscall
	.hidden __syscall
	.type   __syscall,@function
__syscall:
	mr      0, 3                  # Save the system call number
	mr      3, 4                  # Shift the arguments: arg1
	mr      4, 5                  # arg2
	mr      5, 6                  # arg3
	mr      6, 7                  # arg4
	mr      7, 8                  # arg5
	mr      8, 9                  # arg6
	sc
	bnslr+       # return if not summary overflow
	neg     3, 3 # otherwise error: return negated value.
	blr
	.end    __syscall
	.size   __syscall, .-__syscall