/ / / fxg -- declare implicit functions .globl funimpl .globl getname .globl lookup funimpl: bit $7,symtab(r3) bne 1f jsr r5,getname mov r2,-(sp) mov $symbuf,r2 jsr r5,lookup; funtab br 2f cmpb (r2),$'\n bne 2f asr r0 movb funtabt(r0),r0 mov r0,-(sp) bic $!17,r0 bis typtab(r0),symtab(r3) mov (sp)+,r0 asr r0 asr r0 asr r0 asr r0 bic $!17,r0 mov typtab(r0),symtab+2(r3) / save argument conversion 2: / in dimension pointer mov (sp)+,r2 1: rts r5 typtab: intcon realcon dblcon cplxcon dcplxcon funtab: <\0> / function type xy / x = arg types / y = result type / 0 = integer / 2 = real / 4 = double / 6 = complex / 8 = doublecomplex funtabt: .byte 2\<4+2 / tanh .byte 2\<4+2 / sqrt .byte 4\<4+2 / sngl .byte 2\<4+2 / sin .byte 2\<4+2 / sign .byte 6\<4+2 / real .byte 0\<4+0 / mod .byte 2\<4+0 / min1 .byte 0\<4+0 / min0 .byte 2\<4+0 / max1 .byte 0\<4+0 / max0 .byte 0\<4+0 / isign .byte 2\<4+0 / int .byte 2\<4+0 / ifix .byte 4\<4+0 / idint .byte 0\<4+0 / idim .byte 0\<4+0 / iabs .byte 0\<4+2 / float .byte 2\<4+2 / exp .byte 4\<4+4 / dsqrt .byte 4\<4+4 / dsin .byte 4\<4+4 / dsign .byte 8\<4+4 / dreal .byte 4\<4+4 / dmod .byte 4\<4+4 / dmin1 .byte 4\<4+4 / dmax1 .byte 4\<4+4 / dlog10 .byte 4\<4+4 / dlog .byte 8\<4+4 / dimag .byte 2\<4+2 / dim .byte 4\<4+4 / dexp .byte 8\<4+8 / dcsqrt .byte 8\<4+8 / dcsin .byte 4\<4+4 / dcos .byte 8\<4+8 / dconjg .byte 4\<4+8 / dcmplx .byte 8\<4+8 / dclog .byte 8\<4+8 / dcexp .byte 8\<4+8 / dccos .byte 8\<4+4 / dcabs .byte 2\<4+4 / dble .byte 4\<4+4 / datan2 .byte 4\<4+4 / datan .byte 4\<4+4 / dabs .byte 6\<4+6 / csqrt .byte 6\<4+6 / csin .byte 2\<4+2 / cos .byte 6\<4+6 / conjg .byte 2\<4+6 / cmplx .byte 6\<4+6 / clog .byte 6\<4+6 / cexp .byte 6\<4+6 / ccos .byte 6\<4+2 / cabs .byte 2\<4+2 / atan2 .byte 2\<4+2 / atan .byte 2\<4+2 / amod .byte 2\<4+2 / amin1 .byte 0\<4+2 / amin0 .byte 2\<4+2 / amax1 .byte 0\<4+2 / amax0 .byte 2\<4+2 / alog10 .byte 2\<4+2 / alog .byte 2\<4+2 / aint .byte 6\<4+2 / aimag .byte 2\<4+2 / abs