gensys.sh - scc - simple c99 compiler (HTM) 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