[BACK]Return to port.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / int-parts

Annotation of OpenXM/src/asir-doc/int-parts/port.texi, Revision 1.1

1.1     ! noro        1: @comment $OpenXM$
        !             2: @chapter $B0\?"(B
        !             3:
        !             4: @code{risa} $B$OBgItJ,(B C $B$K$h$j=q$+$l$F$$$k$,(B, $BB?G\D91i;;It$N0lIt$O%"%;(B
        !             5: $B%s%V%i$K$h$j5-=R$5$l$F$$$k(B. $B$^$?(B, $B%a%b%j4IM}It$O(B, $B%;%0%a%s%H$NG[CV$K$h$j(B
        !             6: $B%Q%i%a%?$ND4@0$,I,MW$G(B, $B7k2L$H$7$F(B OS $B$K0MB8$9$k(B. $B$=$NB>(B, $B:Y$+$$E@$G$$(B
        !             7: $B$/$D$+5!<o0MB8$9$kItJ,$,$"$k(B. $B$3$3$G$O(B, $B0\?"$N:]$KI,MW$J:n6H$K$D$$$F=R(B
        !             8: $B$Y$k(B.
        !             9:
        !            10: @section $BB?G\D91i;;It(B
        !            11:
        !            12: $BB?G\D91i;;It$G(B, $B%"%;%s%V%i$rMQ$$$F$$$kItJ,$O(B @samp{asm} $B$H$$$&%G%#%l%/(B
        !            13: $B%H%j$K$^$H$a$i$l$F$$$k(B. $B%"%;%s%V%i$,I,MW$K$J$kM}M3$O(B, $BB?G\D9?t$NI=8=$G(B,
        !            14: 1$B7e$rH>8lD9$h$jBg$-$/$H$k$H(B, $B>h=|;;$G(B, $BG\D91i;;$,I,MW$K$J$k$,(B, $BDL>o(B
        !            15: $B$N(B C $B8@8l$G$OG\D91i;;$r%5%]!<%H$7$F$$$J$$$?$a$G$"$k(B. $BMQ0U$9$Y$-H!?t$O(B
        !            16: $B<!$N(B 5$B$D$G$"$k(B.
        !            17:
        !            18: @example
        !            19: int dm(a1,a2,pu)           t = a1*a2; *pu = t/BASE; return t%BASE;
        !            20: int a1,a2,*pu;
        !            21:
        !            22: int dmb(base,a1,a2,pu)     t = a1*a2; *pu = t/base; return t%base;
        !            23: int base,a1,a2,*pu;
        !            24:
        !            25: int dma(a1,a2,a3,pu)       t = a1*a2+a3; *pu =t/BASE; return t%BASE;
        !            26: int a1,a2,a3,*pu;
        !            27:
        !            28: int dmab(base,a1,a2,a3,pu) t = a1*a2+a3; *pu = t/base; return t%base;
        !            29: int base,a1,a2,a3,*pu;
        !            30:
        !            31: int dmar(a1,a2,a3,d)       t = a1*a2+a3; return t%d;
        !            32: int a1,a2,a3,d;
        !            33: @end example
        !            34:
        !            35: $B$3$l$i$r=q$/$3$H$K$h$j(B, $BB?G\D91i;;It$O40@.$9$k(B. $B8=:_$NHG$G$O(B,
        !            36:
        !            37: @table @code
        !            38: @item 680X0 $BMQ(B
        !            39: @code{asm3.s (SUN3$B$*$h$S(BNeXT), asma.s(apollo), asmn.s(NEWS)}
        !            40: @item sparc $BMQ(B
        !            41: @code{asm4.s}
        !            42: @item VAX $BMQ(B
        !            43: @code{asmv.s}
        !            44: @item MIPS $BMQ(B
        !            45: @code{asmm.s}
        !            46: @end table
        !            47:
        !            48: $B$,MQ0U$5$l$F$$$k(B. $B%?!<%2%C%H$N(B CPU $B$,$3$l$i$KBP1~$9$k>l9g$K$O(B, $B$3$l$i(B
        !            49: $B$r$=$N$^$^(B, $B$"$k$$$OB?>/JQ99$7$F;HMQ$9$k$3$H$,$G$-$k(B.
        !            50:
        !            51: $B$5$i$K(B, @samp{asm/@{ddM.c,ddN.c@}} $B$G$O(B, $B>e5-H!?t$N%$%s%i%$%sE83+$b;H(B
        !            52: $BMQ$G$-$k(B. $B8=:_$N=j(B, CPU $B$,(B @code{680X0}, @code{VAX} $B$G$"$k%^%7%s$N$$$/(B
        !            53: $B$D$+$G<B8=$5$l$F$$$k(B. $B$3$l$O(B, @code{gcc} $B$N(B $B%$%s%i%$%s(B @code{asm} $B$N5!(B
        !            54: $BG=$rMQ$$$F$$$k$?$a(B, @code{gcc} $B$,;HMQ2DG=$G$"$k$3$H$,I,MW$G$"$k(B. $B$^$?(B,
        !            55: @code{mips}, @code{sparc} $B$J$I(B, $B=j0b(B RISC CPU $B$G$O(B $B%$%s%i%$%sE83+$N8z(B
        !            56: $B2L$,Gv$$$H9M$($i$l$k$?$a9T$J$C$F$$$J$$(B. @code{680X0} $B$r(B CPU $B$K;}$D%^%7(B
        !            57: $B%s$KBP$7(B $B%$%s%i%$%sE83+$r9T$J$&$h$&$K$9$k>l9g(B, @samp{include/inline.h}
        !            58: $B$rJQ99$9$kI,MW$,$"$k(B. @samp{inline.h} $B$G$O(B, @code{680X0} $BMQ$H$7$F(B,
        !            59: @code{sun} $B$*$h$S(B @code{motorola} $B$N(B $B%"%;%s%V%iMQ$NFs$D$N%^%/%m$rMQ0U(B
        !            60: $B$7$F$$$k(B. $B%?!<%2%C%H$N%^%7%s$N%"%;%s%V%i$,$I$A$i$N%"%;%s%V%i$rMQ(B
        !            61: $B$$$F$$$k$+$K$h$j(B, $B$$$:$l$+$N%^%/%m$rA*Br$9$k$h$&$K(B @code{#if} $B$NItJ,(B
        !            62: $B$KJQ99(B/$BDI2C$r9T$J$&(B.
        !            63:
        !            64: @section $B%a%b%j4IM}(B
        !            65:
        !            66: GC $B$K$*$$$F$O(B, $B%l%8%9%?(B, $B%9%?%C%/(B, $B@EE*NN0h$+$i$N%^!<%-%s%0$r9T$J$&(B.
        !            67: $BFC$K(B, $B%l%8%9%?$O(B, $B5!<o0MB8$J$N$G(B, $B$3$NItJ,$O5!<oKh$K=q$/I,MW$,$"$k(B.
        !            68: $B$3$l$O(B, @samp{gc/mach_dep.c} $B$K=8$a$i$l$F$$$k(B. $B$?$@$7(B, @code{mips} $B$K(B
        !            69: $B$D$$$F$O(B @code{mips} $B$N(B C $B%3%s%Q%$%i$,(B, @code{asm} $BJ8$r5v$7$F$$$J$$$?(B
        !            70: $B$a(B, @samp{gc/mips_mach_dep.s} $B$H$7$FJ,N%$5$l$F$$$k(B. $B$3$3$KG<$a$i$l$F$$(B
        !            71: $B$J$$5!<o$KBP$7$F$O(B, $BB>5!<oMQ$NItJ,$r;2>H$7$F=q$/$3$H$K$J$k(B.
        !            72: @samp{gc/runtime.h} $B$N@hF,ItJ,$K(B, $B5!<oJL$NDj5A$r9T$J$&ItJ,$,$"(B
        !            73: $B$k(B. $B$3$3$GDj5A$5$l$?%7%s%\%k$K$h$j(B @samp{mach_dep.c} $B$N5!<oJL$N(B
        !            74: $BH!?t$,A*$P$l$k$N$G(B, $BBP1~$,$-$A$s$H<h$l$k$h$&$K$9$k(B.
        !            75: @samp{gc/runtime.h} $B$K$O(B, $BB?$/$N%Q%i%a%?$,Dj5A$5$l$F$$$k(B. $B$3$l$i$NFbBg(B
        !            76: $BItJ,$O(B CPU, OS $B$KL54X78$@$,(B, @code{STACKTOP} $B$H(B @code{DATASTART} $B$N(B 2
        !            77: $B$D$N%Q%i%a%?$@$1$O5!<oKh$KD4@0$9$kI,MW$,$"$k(B. $B$3$l$i$O<!$N$h$&$J0UL#$r(B
        !            78: $B;}$D(B.
        !            79:
        !            80: @itemize @bullet
        !            81: @item
        !            82: STACKTOP
        !            83: stack $B$N>e8B(B. $B$3$l$ODL>o(B @code{USRSTACK} $B$J$I$NL>A0$G(B
        !            84: @samp{/usr/include/machine/vmparam.h} $B$KDj5A$5$l$F$$$k(B.
        !            85:
        !            86: @item
        !            87: DATASTART
        !            88: $B@EE*%G!<%?NN0h$N2<8B(B. $B>/$J$/$H$b(B @code{etext} ($B%W%m%0%i%`NN0h$N>e8B(B) $B$h$j>e$G$"(B
        !            89: $B$k$,(B, $B$3$l$O5!<o$K$h$C$FMM!9$K0[$J$k(B. @code{etext} $B$H@EE*%G!<%?NN0h$N2<8B$,O"(B
        !            90: $BB3$7$F$$$J$$>l9g(B, @code{DATASTART} $B$r<B:]$N2<8B$h$j2<$K$H$k$H(B $B%"%/%;%90cH?(B
        !            91: $B$H$J$k>l9g$b$"$k$N$G(B, $B2?$i$+$NJ}K!$G@5$7$$CM$rD4$Y$F@_Dj$9$kI,MW$,$"$k(B.
        !            92: @end itemize
        !            93:
        !            94: $B0J>e$K$h$j(B GC $B$OF0:n$9$k$O$:$G$"$k(B.
        !            95:
        !            96: @section alloca()
        !            97:
        !            98: $BH!?tFb$G:n6HNN0h$H$7$F;HMQ$5$l$k%a%b%j$O%9%?%C%/$+$i<h$k$N$,K>$^$7$$(B.
        !            99: $BDL>o$3$l$O(B @code{alloca()} $B$K$h$j<B8=$5$l$k$,(B, $B%^%7%s$K$h$C$F$O(B
        !           100: @code{alloca()} $B$r(B @code{malloc()} $B$r;H$C$F<B8=$7$F$$$k$b$N$b$"$k(B. $B$3(B
        !           101: $B$N$h$&$J>l9g(B, GC $B$N4X78$G%H%i%V%k$N860x$H$J$k$N$G(B @code{alloca()} $B$NBe(B
        !           102: $B$o$j$K(B @code{gc_malloc()} $B$r;H$&I,MW$,$"$k(B. $B$3$NA*Br$O(B,
        !           103: @samp{include/ca.h} $B$G(B @code{ALLOCA()} $B$J$k%^%/%m$rDj5A$9$k$3$H$K$h$j(B
        !           104: $B9T$J$o$l$k(B. $B$h$C$F(B, $B%?!<%2%C%H%^%7%s$N(B @code{alloca()} $B$,$I$N$h$&$K<B(B
        !           105: $B8=$5$l$F$$$k$+$rD4$Y(B, $B$=$l$,%9%?%C%/$r;H$C$F$$$k$J$i$P(B
        !           106:
        !           107: @example
        !           108: #define ALLOCA(d) alloca(d)
        !           109: @end example
        !           110:
        !           111: @noindent
        !           112:  malloc() $B$r;H$C$F$$$k$J$i$P(B,
        !           113:
        !           114: @example
        !           115: #define ALLOCA(d) alloca(d)
        !           116: @end example
        !           117:
        !           118: @noindent
        !           119: $B$H$9$k(B.
        !           120:
        !           121: @section $B%$%s%/%j%a%s%?%k%m!<%G%#%s%0(B(ASIR)
        !           122:
        !           123: @code{ASIR} $B$G$O(B, $B%j%m%1!<%?%V%k(B object  (@code{xxx.o}) $B$r<B9TCf$K(B
        !           124: $B%m!<%I$G$-$k(B. $B$3$N5!G=$O(B, @code{UNIX} $BHG$G$O(B @code{KCL} (Kyoto Common
        !           125: Lisp) $B$GMQ$$$i$l$F$$$kJ}K!$r;29M$K$7$F<B8=$5$l$F$$$k(B.
        !           126: (@samp{parse/load.c} $B$N(B @code{loadaoutfile()}. ) $B$3$l$O(B, @code{ld}
        !           127: (link editor) $B$N%$%s%/%j%a%s%?%k%m!<%G%#%s%05!G=$rMQ$$$F$$$k(B.
        !           128: @code{ld} $B$,$3$N5!G=$r;}$?$J$$>l9g$O2?$i$+$N<jCJ$,I,MW$H$J$k(B.
        !           129: @code{KCL} $B$G$O(B, $B%j%s%/%(%G%#%?$rJL$KMQ0U$9$k$3$H$GBP1~$7$F$$$k(B.
        !           130: @code{ld} $B$,$3$N5!G=$r;}$D>l9g$K$b(B,  object $B%U%!%$%k$N%X%C%@$N7A(B
        !           131: $B<0$N0c$$$K$h$jJQ99$,I,MW$K$J$k>l9g$b$"$k(B. $B4pK\E*$K$O<!$N0lO"$NA`:n$r9T(B
        !           132: $B$J$&H!?t$r=q$1$P$h$$(B.
        !           133:
        !           134: @enumerate
        !           135: @item
        !           136: $B%m!<%I$9$Y$-%U%!%$%k$r(B @code{ld} $B$K$h$j%$%s%/%j%a%s%?%k%m!<%I$9$k(B. $B$3(B
        !           137: $B$l$O(B, $B%j%s%/8e$N(B object $B$N%5%$%:$rD4$Y$k$?$a$N%m!<%I$G$"$k(B.
        !           138: @item
        !           139: 1. $B$G$G$-$?(B object $BMQ$NNN0h$r3NJ]$9$k(B. $B$3$NNN0h$N@hF,%]%$%s%?$O(B,
        !           140: GC $B$G2s<}$5$l$k$N$rKI$0$?$a(B, $B%R!<%WNN0h$+$i;O$^$k%j%9%H$K7R$0(B.
        !           141: @item
        !           142: 2. $B$GF@$?%]%$%s%?$r%W%m%0%i%`NN0h$N@hF,%"%I%l%9$H$7$F(B, $B2~$a$F%m!<%I$9(B
        !           143: $B$k(B.
        !           144: @item
        !           145: 3. $B$G$G$-$?(B object $B$r(B 2. $B$G3NJ]$7$?NN0h>e$KFI$_9~$`(B.
        !           146: @item
        !           147: $B%m!<%I2DG=$J(B object $B$N@hF,$O(B, $B$=$N%U%!%$%k$K4^$^$l$kH!?t$r(B
        !           148: @code{ASIR} $B$KEPO?$9$k$?$a$NH!?t$H$J$C$F$$$k$N$G(B, $B$=$l$r8F$S=P$9(B.
        !           149: @end enumerate
        !           150:
        !           151: @code{mips} $B$r(B CPU $B$H$9$k%^%7%s$G$O(B, $B%m!<%I$5$l$k(B object $B$r%3%s%Q(B
        !           152: $B%$%k$9$k:]$K$d$dFC<l$JCm0U$rMW$9$k>l9g$,$"$k(B. $B$3$3$G$O(B
        !           153: @code{DECStation} $B$rNc$K$H$j@bL@$9$k(B. @code{mips} $B$G$O(B, $BH!?t8F$S=P$7$O(B
        !           154:
        !           155: @example
        !           156: jal    function
        !           157: @end example
        !           158:
        !           159: @noindent
        !           160: $B$H%3%s%Q%$%k$5$l$k(B. $B$7$+$7(B, @code{jal} $B$O(B, $B8=:_$N%W%m%0%i%`%+%&%s%?$N(B
        !           161: $B>e(B 4bit $B$rHt$S@h%"%I%l%9$N>e(B 4bit $B$H$7$F;H$&$?$a(B, @code{function} $B$N(B
        !           162: $B%"%I%l%9$N>e(B 4bit $B$,8=:_$N%W%m%0%i%`%+%&%s%?$N>e(B 4bit $B$H0lCW$7$J$$$H8F(B
        !           163: $B$S=P$7$G$-$J$$(B. $B>e5-$N$h$&$JJ}K!$G%$%s%/%j%a%s%?%k%m!<%I$7$?>l9g(B, $B%*%V(B
        !           164: $B%8%'%/%H$O%R!<%W$KCV$+$l$k$3$H$K$J$k$,(B, @code{DECStation} $B$N>l9g(B, $B85$N(B
        !           165: $B%W%m%0%i%`NN0h$H(B, $B%R!<%W$G$O(B, $B>e(B 4bit $B$,0[$J$k(B. $B$h$C$F(B, $BIaDL$K%3%s%Q%$(B
        !           166: $B%k$7$?(B object $B$O%m!<%I$G$-$J$$(B. $B%3%s%Q%$%i$*$h$S%"%;%s%V%i$G$3$l$r(B
        !           167: $B2r>C$9$kJ}K!$,:#$N=j8+Ev$?$i$J$$$N$G(B, $B<!$N$h$&$JJ}K!$r$H$k$3$H$K$7$?(B.
        !           168: $B$9$J$o$A(B, @code{cc -S} $B$G%"%;%s%V%i$N%=!<%9$r=P$7(B,
        !           169:
        !           170: @example
        !           171: jal    function
        !           172: @end example
        !           173: @noindent
        !           174: $B$r(B
        !           175: @example
        !           176: .set    noat
        !           177: la      $at,function
        !           178: jal     $at
        !           179: .set    at
        !           180: @end example
        !           181:
        !           182: @noindent
        !           183: $B$K=q$-49$($F(B, $B%"%;%s%V%k$9$k$3$H$H$7$?(B. ($B<B:]$K$O(B, @code{cc},
        !           184: @code{as} $B6&$K(B @samp{-G 0} $B$J$k%*%W%7%g%s$,I,MW$G$"$k(B. $B$^$?(B, @code{as}
        !           185: $B$N(B $B7Y9p%a%C%;!<%8$r>C$9$?$a$K$O(B, @samp{-w} $B$J$k%*%W%7%g%s$rIU$1$k(B. )
        !           186: $B$3$N=q$-49$($O(B, $B<!$N(B @code{awk} $B%9%/%j%W%H$K$h$j9T$J$o$l$k(B.
        !           187:
        !           188: @example
        !           189: {
        !           190:     if ( $1 == "jal" && substr($2,0,1) != "$" )
        !           191:         printf "\t.set\tnoat\n\tla\t$at,%s\n\tjal\t$at\n\t.set\tat\n",$2
        !           192:     else print
        !           193: }
        !           194: @end example
        !           195:
        !           196: @noindent
        !           197:
        !           198: $B$3$N=$@5$O(B, @code{mips} $B$r(B CPU $B$H$9$kB>$N%^%7%s(B (@code{RISC NEWS} $B$J$I(B)
        !           199: $B$KBP$7$F$bI,MW$G$"$k$H;W$o$l$k(B.
        !           200:
        !           201: @section NeXT $B$X$N0\?"(B
        !           202:
        !           203: $B$3$l$^$G(B @code{UNIX} $B>e$G$N0\?":n6H$K$D$$$F=R$Y$F$-$?$,(B, @code{NeXT}
        !           204: $B$O(B @code{Mach} $B$r(B OS $B$H$9$k%^%7%s$G$"$j(B, GC, $B%$%s%/%j%a%s%?%k%m!<%G%#(B
        !           205: $B%s%0$J$I$h$j(B OS $B$K0MB8$9$kItJ,$G$ODL>o$N(B @code{UNIX} $B$H0[$J$kItJ,$,=P(B
        !           206: $B$F$/$k(B. $B$=$l$i$K$D$$$F=R$Y$k(B.
        !           207:
        !           208: @subsection $B%a%b%j4IM}(B
        !           209:
        !           210: @code{UNIX} $B$H(B @code{Mach} $B$G$O(B, OS $BB&$N(B $B%a%b%j4IM}$,Bg$-$/0[$J$C$F$$(B
        !           211: $B$k(B. @code{UNIX} $B$K$*$$$F$O(B, $B%G!<%?%;%0%a%s%H$OO"B3NN0h$G$"$j(B, OS $B$KBP(B
        !           212: $B$9$k(B $B%a%b%j$NMW5a$O(B, $B$=$NNN0h$r?-$P$9$3$H$K$h$jK~$?$5$l$k(B. $B$7$+$7(B,
        !           213: @code{Mach} $B$K$*$$$F$O(B, @code{vm_allocate()} $B$J$kH!?t$K$h$j8DJL$NNN0h(B
        !           214: $B$H$7$FM?$($i$l(B, $B0lHL$K$=$l$iA4BN$OO"B3$7$?NN0h$H$O$J$i$J$$(B. $B%*%j%8%J%k(B
        !           215: $B$N(B GC $B$G$O(B, $B%G!<%?%;%0%a%s%H$N(B $B@hF,(B, $BKvHx$@$1$rCN$C$F(B, $B$=$N4V$rA4$F(B
        !           216: $B8!::$9$k$,(B, @code{Mach} $B$N>l9g(B, $B$3$N$^$^$G$O%"%/%;%90cH?$r5/$3$92DG=@-(B
        !           217: $B$,$"$k(B. $B$3$l$i$r9MN8$7$F(B, @code{NeXT} $BHG$G$O<!$N$h$&$JJQ99$r9T$J$C$?(B.
        !           218:
        !           219: @enumerate
        !           220: @item
        !           221: $B%*%j%8%J%k$G(B @code{brk()}, @code{sbrk()} $B$G=q$+$l$F$$$kItJ,$r(B
        !           222: @code{vm_allocate()} $B$r;H$C$F=q$-D>$7$?(B.
        !           223: @item
        !           224: $B8zN(Dc2<$r>7$/62$l$O$"$k$,(B, @code{vm_allocate()} $B$GF@$?NN0h$N>e2<8B$N(B
        !           225: $B%j%9%H$rJ];}$7(B, $B$"$k?t$,BEEv$J%]%$%s%?$G$"$k$+H]$+$N%A%'%C%/$N:]$K(B, $B$3(B
        !           226: $B$N%j%9%H$K$h$k%A%'%C%/$b9T$J$&$h$&$K$7$?(B.
        !           227: @end enumerate
        !           228:
        !           229: @noindent
        !           230: $B$3$l$i$NJQ99$O(B, $B$=$NB>$N(B @code{Mach} $B%^%7%s$K$bDLMQ$9$k$H;W$o$l$k(B.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>