summaryrefslogtreecommitdiff
path: root/src/internal/powerpc/syscall.s
blob: bca620db352c7d1394e7aa38b57c7fddc6666b2f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
	.global __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
	#else error:
	# return negated value.
	neg 3, 3
	blr
	.end    __syscall
	.size   __syscall, .-__syscall