home *** CD-ROM | disk | FTP | other *** search
- /
- /
-
- / 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:
- <tanh\0>
- <sqrt\0>
- <sngl\0>
- <sin\0>
- <sign\0>
- <real\0>
- <mod\0>
- <min1\0>
- <min0\0>
- <max1\0>
- <max0\0>
- <isign\0>
- <int\0>
- <ifix\0>
- <idint\0>
- <idim\0>
- <iabs\0>
- <float\0>
- <exp\0>
- <dsqrt\0>
- <dsin\0>
- <dsign\0>
- <dreal\0>
- <dmod\0>
- <dmin1\0>
- <dmax1\0>
- <dlog10\0>
- <dlog\0>
- <dimag\0>
- <dim\0>
- <dexp\0>
- <dcsqrt\0>
- <dcsin\0>
- <dcos\0>
- <dconjg\0>
- <dcmplx\0>
- <dclog\0>
- <dcexp\0>
- <dccos\0>
- <dcabs\0>
- <dble\0>
- <datan2\0>
- <datan\0>
- <dabs\0>
- <csqrt\0>
- <csin\0>
- <cos\0>
- <conjg\0>
- <cmplx\0>
- <clog\0>
- <cexp\0>
- <ccos\0>
- <cabs\0>
- <atan2\0>
- <atan\0>
- <amod\0>
- <amin1\0>
- <amin0\0>
- <amax1\0>
- <amax0\0>
- <alog10\0>
- <alog\0>
- <aint\0>
- <aimag\0>
- <abs\0>
- <\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
-