gensys.sh - scc - simple c99 compiler
HTML git clone git://git.simple-cc.org/scc
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
gensys.sh (434B)
---
1 #!/bin/sh
2
3 #
4 # This job is very easy because app and kernel ABI are identical
5 # until the 4th parameter, so we only have to set the syscall
6 # number in rax
7
8 sed -n "
9 s/[ ]*#.*//
10 /$1/p" syscall.lst |
11 while read num name nargs
12 do
13 cat <<EOF > $name.s
14 .file "$name.s"
15
16 .globl $name
17 $name:
18 `case $nargs in 4|5|6)
19 echo "movq %rcx,%r10"
20 ;;
21 esac`
22 movq \$$num,%rax
23 syscall
24 jmp _cerrno
25 EOF
26 done