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