From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Jun 19 11:24:33 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) id LAA11195
	Thu, 19 Jun 1997 11:24:33 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) with SMTP id LAA11190
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 19 Jun 1997 11:24:32 +0900 (JST)
Received: from sranhc.sra.co.jp by sraigw.sra.co.jp (8.6.13/3.4W-sraigw)
	id LAA20000; Thu, 19 Jun 1997 11:24:16 +0900
Received: from sras63.sra.co.jp (hikichi@sras63 [133.137.20.191]) by sranhc.sra.co.jp (8.6.13/3.4W-srambox) with ESMTP id LAA06320 for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 19 Jun 1997 11:23:22 +0900
Received: (from hikichi@localhost) by sras63.sra.co.jp (8.6.12+2.4W3/3.4W-sras63) id LAA03349; Thu, 19 Jun 1997 11:24:30 +0900
Date: Thu, 19 Jun 1997 11:24:30 +0900
From: Nobuyuki Hikichi <hikichi@sra.co.jp>
Message-Id: <199706190224.LAA03349@sras63.sra.co.jp>
To: FreeBSD-users-jp@jp.freebsd.org
In-Reply-To: <199706181204.VAA00382@hiro.mydomain.jp>
References: <199706181204.VAA00382@hiro.mydomain.jp>
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 14504
Subject: [FreeBSD-users-jp 14504] Asm in GCC
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org


$BJdB-$7$h$&$H$7$F=q$$$F$_$^$7$?$,!"$"$^$j$o$+$j$d$9$$$b$N(B
$B$K$O$J$j$^$;$s$G$7$?!"(B
$B$,0l1~!"(Bsend $B$7$^$9!#(B

HirohitoHiguchi writes:
:
 > $B%"%;%s%V%i9=J8$,NI$/M}2r$G$-$^$;$s!#(B

 > inb(unsigned int port)
 > {
 >   unsigned char data;

 >   __asm __volatile("inb %%dx,%0" : "=a" (data) : "d" (port));
 >   return (data);

 > }
 > $B$G(B%0$B$N(B'0'$B$d(B"=a"$B$N(Ba$B!"(B"d"$B$N(Bd$B$N0UL#$,2r$j$^$;$s$,!"8f65<($/$@$5$$$^$;$s$+!)(B

(gcc.info)Extended Assm $B$N(B node $B$r8+$F$_$k$H!"(B

	port $B$O(B input operand $B$G!"(B data $B$,(B outputt operand $B$G$"$k!#(B
	a $B$d(B d $B$O(B operand cconstraint$B!#(B
	=a $B$N(B = $B$O(B output operand $B$G$"$k$3$H$r0UL#$7$F$$$k!#(B

$B$H$$$&$3$H$N$h$&$G$9!#(B

	__volatile $B$O!"(B
		$B$=$N(B code $B$r0\F0$7$?$j!"$=$N(B code $B$,(Bunreacable $B$@$+$i$H$$$C$F!"(B
		$B:o=|$7$?$j!"(B
	$B$7$J$$$?$a$KIU$1$F$$$k$h$&$G$9!#(B

%0 $B$K4X$7$F$N5-=R$O$9$0$K8+$D$+$i$J$+$C$?$N$G!"(B
$B?dB,$r=q$-$^$9!#(B

	%0 $B$,=P$F$$$k$H$3$m$O(B assembler instruction template $B$G$9!#(B
	%0 $B$O(B 0 $BHVL\$N(B operand $B$r$5$7$F$$$^$9!#(B
	$B:#2s$N>l9g$O(B "=a" (data) $B$N=j$,3:Ev$7$^$9!#(B

 > info gcc$B$G$_$k$H(Ba,d,f$B$O(BMC68881$B4XO"$N$b$N$i$7$$$N$G$9$,!#(B
 > GNU$B$C$F!"$H$$$&$h$j(BFreeBSD$B$C$F(BPC/AT$B$G$7$+F0$+$J$$$N$K$o$6$o$6%U%k%;%C%H(B
 > $B$N%3%s%Q%$%i$r$$$l$J$/$F$b$$$$$N$K!"$H;W$C$F$7$^$&$N$O4V0c$$$G$7$g$&$+!)(B

 > $BBgBN%"%;%s%V%i$N9`L\$NNc$K$J$<%$%s%F%k7O$N2r@b$,L5$$$N$+$J!)(B

$B<j85$N(B info $B$r8+$F$_$k$H(B
(gcc.info)Machine Constraints $B$H$$$&(B node $B$N(B
$B$K!"(Bmachine dependent $B$J(B constraint $B$,>R2p$7$F$"$j!"(B

*Intel 386--`i386.h'*

$B$K!"(B

    `a'
          `a' register
:
    `d'
          `d' register

$B$H$$$&@bL@$,$"$j$^$7$?!#(B

					Nobuyuki Hikichi <hikichi@sra.co.jp>
