@ -13,6 +13,8 @@
.align 2
ENTRY( _ o u t s l )
CC = R 2 = = 0 ;
IF C C J U M P 1 f ;
P0 = R 0 ; /* P0 = port */
P1 = R 1 ; /* P1 = address */
P2 = R 2 ; /* P2 = count */
@ -20,10 +22,12 @@ ENTRY(_outsl)
LSETUP( . L l o n g _ l o o p _ s , . L l o n g _ l o o p _ e ) L C 0 = P 2 ;
.Llong_loop_s : R0 = [ P 1 + + ] ;
.Llong_loop_e : [ P0 ] = R 0 ;
RTS;
1 : RTS;
ENDPROC( _ o u t s l )
ENTRY( _ o u t s w )
CC = R 2 = = 0 ;
IF C C J U M P 1 f ;
P0 = R 0 ; /* P0 = port */
P1 = R 1 ; /* P1 = address */
P2 = R 2 ; /* P2 = count */
@ -31,10 +35,12 @@ ENTRY(_outsw)
LSETUP( . L w o r d _ l o o p _ s , . L w o r d _ l o o p _ e ) L C 0 = P 2 ;
.Lword_loop_s : R0 = W [ P 1 + + ] ;
.Lword_loop_e : W[ P 0 ] = R 0 ;
RTS;
1 : RTS;
ENDPROC( _ o u t s w )
ENTRY( _ o u t s b )
CC = R 2 = = 0 ;
IF C C J U M P 1 f ;
P0 = R 0 ; /* P0 = port */
P1 = R 1 ; /* P1 = address */
P2 = R 2 ; /* P2 = count */
@ -42,10 +48,12 @@ ENTRY(_outsb)
LSETUP( . L b y t e _ l o o p _ s , . L b y t e _ l o o p _ e ) L C 0 = P 2 ;
.Lbyte_loop_s : R0 = B [ P 1 + + ] ;
.Lbyte_loop_e : B[ P 0 ] = R 0 ;
RTS;
1 : RTS;
ENDPROC( _ o u t s b )
ENTRY( _ o u t s w _ 8 )
CC = R 2 = = 0 ;
IF C C J U M P 1 f ;
P0 = R 0 ; /* P0 = port */
P1 = R 1 ; /* P1 = address */
P2 = R 2 ; /* P2 = count */
@ -56,5 +64,5 @@ ENTRY(_outsw_8)
R0 = R 0 < < 8 ;
R0 = R 0 + R 1 ;
.Lword8_loop_e : W[ P 0 ] = R 0 ;
RTS;
1 : RTS;
ENDPROC( _ o u t s w _ 8 )