123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- NPROC=1
- </$objtype/mkfile
- install:V:
- SYS=`{sed '/^#define._X[123]/d; s/#define.([A-Z0-9_]*).*/\1/' sys.h}
- for(I in $SYS) {
- i=`{echo $I|tr A-Z a-z}
- n=`{sed -n '/[ ]'$I'[ ]/s/.* //p' sys.h}
- if(~ $i exits) i=_exits
- {switch($objtype){
- case 68000
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVL '$'$n, R0
- echo TRAP '$0'
- echo RTS
- case 68020
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVL '$'$n, R0
- echo TRAP '$0'
- echo RTS
- case mips
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVW R1, '0(FP)'
- echo MOVW '$'$n, R1
- echo SYSCALL
- if(~ $i seek) {
- echo 'MOVW $-1,R5
- BNE R1,R5,4(PC)
- MOVW a+0(FP),R5
- MOVW R1,0(R5)
- MOVW R1,4(R5)'
- }
- echo RET
- case mips2
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVW R1, '0(FP)'
- echo MOVW '$'$n, R1
- echo ADD '$4',R29
- echo SYSCALL
- echo ADD '$-4',R29
- echo RET
- case spim
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVW R1, '0(FP)'
- echo MOVW '$'$n, R1
- echo ADD '$4',R29
- echo SYSCALL
- echo ADD '$-4',R29
- echo RET
- case 386
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVL '$'$n, AX
- echo INT '$'64
- if(~ $i seek) {
- echo 'CMPL AX,$-1
- JNE 4(PC)
- MOVL a+0(FP),CX
- MOVL AX,0(CX)
- MOVL AX,4(CX)'
- }
- echo RET
- case amd64
- if(~ $i seek)
- echo TEXT _seek'(SB)', 1, '$0'
- if not
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVQ RARG, 'a0+0(FP)'
- echo MOVQ '$'$n, RARG
- echo SYSCALL
- echo RET
- case sparc sparc64
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVW R7, '0(FP)'
- echo MOVW '$'$n, R7
- echo TA R0
- if(~ $i seek) {
- echo 'CMP R7,$-1
- BNE 4(PC)
- MOVW a+0(FP),R8
- MOVW R7,0(R8)
- MOVW R7,4(R8)'
- }
- echo RETURN
- case 3210
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVW R3, '0(FP)'
- echo MOVW '$'$n, R3
- echo WORD '$0x06000000'
- echo RETURN
- case 29000
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVL R69, '0(FP)'
- echo MOVL '$'$n, R69
- echo EMULATE 0
- echo RET
- case arm
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVW R0, '0(FP)'
- echo MOVW '$'$n, R0
- echo SWI 0
- echo RET
- case power
- echo TEXT $i'(SB)', 1, '$0'
- echo MOVW R3, '0(FP)'
- echo MOVW '$'$n, R3
- echo SYSCALL
- if(~ $i seek) {
- echo 'CMP R3,$-1
- BNE 4(PC)
- MOVW a+0(FP),R8
- MOVW R3,0(R8)
- MOVW R3,4(R8)'
- }
- echo RETURN
- case alpha
- j=$i
- if(~ $i seek) j=_seek
- echo TEXT $j'(SB)', 1, '$0'
- echo MOVL R0, '0(FP)'
- echo MOVQ '$'$n, R0
- echo CALL_PAL '$'0x83
- echo RET
- }} > $i.s
- $AS $i.s
- }
- ar vu /$objtype/lib/libc.a *.$O
- rm -f *.$O *.s
- nuke clean:V:
- rm -f *.[$OS]
- installall:V:
- for(objtype in $CPUS) mk install
- update:V:
- update $UPDATEFLAGS mkfile sys.h
|