updated left-shift0
This commit is contained in:
parent
c34be54fbc
commit
e1db98fec6
39
math32.tal
39
math32.tal
|
@ -112,8 +112,7 @@
|
|||
|
||||
( temporary registers )
|
||||
( used by most operations, except mul32 and div32 )
|
||||
@sh [ &r $1
|
||||
&x0 $1 &x1 $1 &x2 $1 &x3 $1
|
||||
@sh [ &x0 $1 &x1 $1 &x2 $1 &x3 $1
|
||||
&y0 $1 &y1 $1 &y2 $1 &y3 $1
|
||||
&z0 $1 &z1 $1 &z2 $1 &z3 $1
|
||||
&a0 $1 &a1 $1 &a2 $2 ]
|
||||
|
@ -171,36 +170,26 @@
|
|||
|
||||
( shift left by 0-7 bits )
|
||||
@left-shift0 ( x** n^ -> x<<n )
|
||||
#0000 ;sh/z0 STA2 #0000 ;sh/z2 STA2
|
||||
#40 SFT STH ( n<<4 -> r )
|
||||
SWP SWP2 SWP ( x3 x2 x1 x0 )
|
||||
|
||||
STHkr SFT ;sh/z0 STA ( x3 x2 x1 )
|
||||
|
||||
#00 SWP STHkr SFT2 ( x3 x2 00x1<<r )
|
||||
;sh/z0 LDA2 ORA2 ;sh/z0 STA2 ( x3 x2 )
|
||||
|
||||
#00 SWP STHkr SFT2 ( x3 00x2<<r )
|
||||
;sh/z1 LDA2 ORA2 ;sh/z1 STA2 ( x3 )
|
||||
|
||||
#00 SWP STHr SFT2 ( 00x3<<r )
|
||||
;sh/z2 LDA2 ORA2 ;sh/z2 STA2 ( )
|
||||
|
||||
;sh/z0 LDA2 ;sh/z2 LDA2
|
||||
#40 SFT STH ( stash n<<4 )
|
||||
#00 SWP STHkr SFT2 ;sh/z2 STA2 ( store z2,z3 )
|
||||
#00 SWP STHkr SFT2 #00 ;sh/z2 LDA ORA2 ;sh/z1 STA2 ( store z1,z2 )
|
||||
#00 SWP STHkr SFT2 #00 ;sh/z1 LDA ORA2 ;sh/z0 STA2 ( store z0,z1 )
|
||||
STHr SFT ;sh/z0 LDA ORA ( calculate z0 )
|
||||
;sh/z1 LDA ;sh/z2 LDA2
|
||||
RTN
|
||||
|
||||
( shift left by 8-15 bits )
|
||||
@left-shift1 ( x** n^ -> x<<n )
|
||||
#0000 ;sh/z0 STA2 #00 ;sh/z2 STA
|
||||
#08 SUB #40 SFT ;sh/r STA ( n<<4 -> r )
|
||||
#08 SUB #40 SFT STH ( n<<4 -> r )
|
||||
SWP SWP2 SWP POP ( x3 x2 x1 )
|
||||
|
||||
;sh/r LDA SFT ;sh/z0 STA ( x3 x2 )
|
||||
STHkr SFT ;sh/z0 STA ( x3 x2 )
|
||||
|
||||
#00 SWP ;sh/r LDA SFT2 ( x3 00x2<<r )
|
||||
#00 SWP STHkr SFT2 ( x3 00x2<<r )
|
||||
;sh/z0 LDA2 ORA2 ;sh/z0 STA2 ( x3 )
|
||||
|
||||
#00 SWP ;sh/r LDA SFT2 ( 00x3<<r )
|
||||
#00 SWP STHr SFT2 ( 00x3<<r )
|
||||
;sh/z1 LDA2 ORA2 ;sh/z1 STA2 ( )
|
||||
|
||||
;sh/z0 LDA2 ;sh/z2 LDA #00
|
||||
|
@ -209,12 +198,12 @@
|
|||
( shift left by 16-23 bits )
|
||||
@left-shift2 ( x** n^ -> x<<n )
|
||||
#0000 ;sh/z0 STA2
|
||||
#10 SUB #40 SFT ;sh/r STA ( n<<4 -> r )
|
||||
#10 SUB #40 SFT STH ( n<<4 -> r )
|
||||
SWP2 POP2 SWP ( x3 x2 )
|
||||
|
||||
;sh/r LDA SFT ;sh/z0 STA ( x3 )
|
||||
STHkr SFT ;sh/z0 STA ( x3 )
|
||||
|
||||
#00 SWP ;sh/r LDA SFT2 ( x3<<r )
|
||||
#00 SWP STHr SFT2 ( x3<<r )
|
||||
;sh/z0 LDA2 ORA2 ;sh/z0 STA2 ( )
|
||||
|
||||
;sh/z0 LDA2 #0000
|
||||
|
|
Loading…
Reference in New Issue