$ od -c -N 50000 [eris]<Lisp>fugue.5>Sources>LISP0MC.DM!1
0000000 377 \0 \0 A r i t h . 0 m c \0 373 231 302
0000020 214 350 \0 \0 376 001 \0 255 026 : T I T L E [
0000040 A r i t h . 0 m c . . . S e p t
0000060 e m b e r 1 3 , 1 9 8 2
0000100 3 : 3 7 P M , v a n M e l
0000120 l e ] ; \r \r * L L S H 1 , o
0000140 p 3 4 0 : \r * R e p l a c e
0000160 T O S w i t h i t s h i
0000200 f t e d l e f t o n e , a
0000220 b o r t s t o U F N o n
0000240 o v e r l o w \r \r @ L L S H 1 :
0000260 \r \t c a l l [ C h e c k S m a l
0000300 l p ] , l s p U F N _ 3 4
0000320 0 c , o p c o d e [ 3 4 0 ] ;
0000340 \t \t * U f n i n d e x \r \t T
0000360 _ l s h [ S t a c k , 1 ]
0000400 , d b l g o t o [ l s h F a i
0000420 l s , l s h G e 376 001 \0 256 ` t s
0000440 T , R < 0 ] ; \r l s h G e t s
0000460 T : \r \t S t a c k _ T , g
0000500 o t o [ n x i L B L ] ; \r l s h
0000520 F a i l s : \r \t g o t o [ u f n
0000540 L B L ] ; \r \r * L L S H 8 ,
0000560 o p 3 4 1 , R e p l a c e
0000600 T O S w i t h i t s h i f
0000620 t e d l e f t 8 , a b o r
0000640 t o n o v e r f l o w \r \r @
0000660 L L S H 8 : \r \t c a l l [ C h e
0000700 c k S m a l l p ] , l s p U F
0000720 N _ 3 4 1 c , o p c o d e
0000740 [ 3 4 1 ] ; \r \t l u _ l h m
0000760 a s k [ S t a c k ] ; \r \t T _
0001000 l s h [ S t a c k , 1 0 ] ,
0001020 d b l g o t o [ l s h F a 376 001
0001040 \0 _ 030 i l s , l s h G e t s T
0001060 , a l u # 0 ] ; \r \r \r \r * L
0001100 R S H 1 , o p 3 4 2 , R e
0001120 p l a c e T O S w i t h i
0001140 t s h i f t e d r i g h t
0001160 o n e \r \r @ L R S H 1 : \r \t c a
0001200 l l [ C h e c k S m a l l p ] ,
0001220 l s p U F N _ 3 4 2 c ,
0001240 o p c o d e [ 3 4 2 ] ; \r \t S t
0001260 a c k _ r s h [ S t a c k ,
0001300 1 ] , g o t o [ n x i L B L
0001320 ] ; \r \r \r * L R S H 8 , o p
0001340 3 4 3 , R e p l a c e T O
0001360 S w i t h i t s h i f t e
0001400 d r i g h t 8 \r \r @ L R S H
0001420 8 : \r \t c a l l [ C h e c k S m
0001440 a l l 376 001 \0 360 306 p ] , l s p U
0001460 F N _ 3 4 3 c , o p c o d
0001500 e [ 3 4 3 ] ; \r \t S t a c k _
0001520 r s h [ S t a c k , 1 0 ] ,
0001540 g o t o [ n x i L B L ] ; \r \r
0001560 \r * S m a l l p o s u n b o
0001600 x \r * r e t u r n s T O S
0001620 i n T a s i n t e g e r
0001640 i f i t i s s m a l l p o
0001660 s p , p u n t s o t h e r w
0001700 i s e \r \r \t o n p a g e [ p g A
0001720 r i t h O p s ] ; \r C h e c k S
0001740 m a l l p : \r \t T _ S t a c
0001760 k & - 1 ; \r \t l u _ ( S t a
0002000 c k & + 1 ) x o r ( s m a l
0002020 l p l ) ; \r \t s k i p [ a l u =
0002040 0 ] ; \r \t g 376 001 \0 357 ' o t o
0002060 [ u f n L B L ] ; \r l s p R e t
0002100 P 7 : \r \t r e t u r n ; \r \r \r \r
0002120 \f \r * T w o a r g a r i t
0002140 h m e t i c o p c o d e s .
0002160 T h e s e a l l g o t o
0002200 U n b o x t o u n b o x
0002220 T O S - 1 a n d T O S \r *
0002240 i n t o I n t 1 H i / L o a
0002260 n d I n t 2 H i / L o , t h
0002300 e n c o m e b a c k h e r
0002320 e b y d i s p a t c h i n g
0002340 t h r u l s p U F N \r * F
0002360 o r c o m p a c t n e s s ,
0002400 U F N e n c o d e s t w o
0002420 4 b i t f i e l d s : \r *
0002440 < l o w 4 b i t s o 376 001 \0
0002460 025 354 f o p c o d e > , , < f u
0002500 n c t i o n > \r * w h e r e
0002520 < f u n c t i o n > p r o v i
0002540 d e s a ( u p t o ) 1 6
0002560 - w a y d i s p a t c h o n
0002600 l o g i c a l f u n c t i o
0002620 n , \r * a n d t h e l o w
0002640 2 b i t s a r e a 4 -
0002660 w a y d i s p a t c h o n
0002700 t h e p o s s i b l e h i
0002720 4 b i t s o f o p c o d e
0002740 \r * ( 3 2 0 , 3 4 0 , 3 6
0002760 0 , w i t h 3 2 0 t w i c
0003000 e ) . \r \r M @ [ A r i t h O p ,
0003020 O r [ L S h i f t [ A n d [ #
0003040 1 , 1 7 ] , 4 ] , # 2 ] ] ; \t
0003060 * 376 001 \0 313 x A r i t h O p [ o
0003100 p c o d e , f n ] \r R V 2 [ I
0003120 n t 1 H i , I n t 1 L o , I
0003140 P [ A C 0 ] ] ; \r R V 2 [ I n t
0003160 2 H i , I n t 2 L o , I P [
0003200 l s p L 2 ] ] ; \r \r \r * L o g
0003220 i c a l o p s . N o o v
0003240 e r f l o w . L o w 2 b
0003260 i t s = 1 \r \r @ L o g o r 2
0003300 : \r \t g o t o [ U n b o x ] ,
0003320 l s p U F N _ A r i t h O p
0003340 [ 3 4 4 , 1 ] c , o p c o d e
0003360 [ 3 4 4 ] ; \r \t I n t 1 L o _
0003400 ( I n t 1 L o ) o r T ,
0003420 a t [ A r i t h D i s p , 1 ]
0003440 ; \r \t T _ I n t 2 H i ; \r \t
0003460 I n t 1 H i 376 001 \0 035 230 _ ( I
0003500 n t 1 H i ) o r T , g o t
0003520 o [ I n t B o x E a s y ] ; \r \r
0003540 \r @ L o g a n d 2 : \r \t g o t o
0003560 [ U n b o x ] , l s p U F N
0003600 _ A r i t h O p [ 3 4 5 , 5 ]
0003620 c , o p c o d e [ 3 4 5 ] ; \r
0003640 \t I n t 1 L o _ ( I n t 1 L
0003660 o ) a n d T , a t [ A r i
0003700 t h D i s p , 5 ] ; \r \t T _
0003720 I n t 2 H i ; \r \t I n t 1 H i
0003740 _ ( I n t 1 H i ) a n d
0003760 T , g o t o [ I n t B o x E a
0004000 s y ] ; \r \r \r @ L o g x o r 2 :
0004020 \r \t g o t o [ U n b o x ] , l
0004040 s p U F N _ A r i t h O p [
0004060 3 4 6 , 1 1 ] c , o p 376 001 \0 267
0004100 037 c o d e [ 3 4 6 ] ; \r \t I n t
0004120 1 L o _ ( I n t 1 L o ) x
0004140 o r T , a t [ A r i t h D i
0004160 s p , 1 1 ] ; \r \t T _ I n
0004200 t 2 H i ; \r \t I n t 1 H i _
0004220 ( I n t 1 H i ) x o r T ,
0004240 g o t o [ I n t B o x E a s y ]
0004260 ; \r \r \r * I G R E A T E R P ,
0004300 o p 3 6 1 ; G R E A T E R
0004320 P , o p 3 6 3 \r @ I G T R P
0004340 : \r \t g o t o [ U n b o x ] ,
0004360 l s p U F N _ A r i t h O p
0004400 [ 3 6 1 , 6 ] c , o p c o d e
0004420 [ 3 6 1 ] ; \t * I G R E A T E
0004440 R P \r \t g o t o [ U n b o x ] ,
0004460 l s p U F N _ A r i t h O
0004500 p 376 001 \0 277 , [ 3 6 3 , 6 ] c ,
0004520 o p c o d e [ 3 6 3 ] ; \t * G
0004540 R E A T E R P \r * \r * \t W a n t
0004560 t o s e e i f L 0 , 1
0004600 > L 2 , 3 . D o t h i s
0004620 b y s u b t r a c t i n g
0004640 L 2 , 3 - L 0 , 1 \r * \t a n
0004660 d t e s t i n g C a r r y '
0004700 . \r * \r \t I n t 2 H i _ ( I
0004720 n t 2 H i ) x o r ( 1 0 0 0
0004740 0 0 c ) , a t [ A r i t h D i
0004760 s p , 6 ] ; \r \t \t \t \t \t \t *
0005000 c o m p l e m e n t s i g n
0005020 b i t s \r \t T _ ( I n t 1 H
0005040 i ) x o r ( 1 0 0 0 0 0 c )
0005060 ; \t \t * s o c o m p a r e
0005100 c o m e s 376 001 \0 } . o u t r
0005120 i g h t \r \t l u _ ( I n t 2
0005140 H i ) - T ; \t \t \t * C o m
0005160 p a r e h i h a l v e s \r \t
0005200 T _ I n t 1 L o , F r e e
0005220 z e R e s u l t , s k i p [ a
0005240 l u = 0 ] ; \r \t S t a c k &
0005260 - 1 _ 0 c , d b l g o t o
0005300 [ I g t , I l t , N o C a
0005320 r r y ] ; \r \t l u _ ( I n t
0005340 2 L o ) - T ; \t \t \t * i f
0005360 h i e q u a l , c o m p a
0005400 r e l o \r \t S t a c k & - 1
0005420 _ 0 c , d b l g o t o [ I g
0005440 t , I l t , N o C a r r y
0005460 ] ; \r I l t : \t S t a c k & + 1
0005500 _ 0 c , g o t o 376 001 \0 353
0005520 [ A r i t h E x i t ] ; \r I g t
0005540 : \t S t a c k & + 1 _ ( K t
0005560 V a l ) , g o t o [ A r i t h
0005600 E x i t ] ; \r \f \r * A r i t h
0005620 m e t i c O p s . O v e r
0005640 f l o w p o s s i b l e .
0005660 L o w 2 b i t s = 0 \r \r
0005700 @ I P L U S 2 : \r \t g o t o [ U
0005720 n b o x ] , l s p U F N _
0005740 A r i t h O p [ 3 3 0 , 0 ] c ,
0005760 o p c o d e [ 3 3 0 ] ; \t *
0006000 I P L U S 2 \r \t g o t o [ U n b
0006020 o x ] , l s p U F N _ A r
0006040 i t h O p [ 3 2 4 , 0 ] c , o
0006060 p c o d e [ 3 2 4 ] ; \t * P L
0006100 U S 2 \r A r i t h O p s : \r \t I
0006120 376 001 \0 231 330 n t 1 L o _ ( I n
0006140 t 1 L o ) + T , a t [ A r
0006160 i t h D i s p , 0 ] ; \r \t T
0006200 _ I n t 2 H i , F r e e z e
0006220 R e s u l t ; \r \t I n t 1 H i
0006240 _ ( I n t 1 H i ) + T ,
0006260 U s e C o u t a s C i n , g o
0006300 t o [ I n t B o x ] ; \r \r \r @ I
0006320 D I F F E R E N C E : \r \t g o t
0006340 o [ U n b o x ] , l s p U F N
0006360 _ A r i t h O p [ 3 3 1 , 4
0006400 ] c , o p c o d e [ 3 3 1 ] ;
0006420 \t * I D I F F E R E N C E \r \t
0006440 g o t o [ U n b o x ] , l s p
0006460 U F N _ A r i t h O p [ 3 2
0006500 5 , 4 ] c , o p c o d e [ 3 2
0006520 5 ] ; \t * 376 001 \0 T 370 D I F F E
0006540 R E N C E \r \r \t I n t 1 L o _
0006560 ( I n t 1 L o ) - T , a
0006600 t [ A r i t h D i s p , 4 ] ;
0006620 \r \t T _ I n t 2 H i , F r
0006640 e e z e R e s u l t ; \r \t I n t
0006660 1 H i _ ( I n t 1 H i ) -
0006700 T , U s e C o u t a s C i n
0006720 , g o t o [ I n t B o x ] ; \r
0006740 \r \r \r @ B O X I P L U S : \r \t g
0006760 o t o [ U n b o x ] , l s p U
0007000 F N _ A r i t h O p [ 3 6 6
0007020 , 2 ] c , o p c o d e [ 3 6 6
0007040 ] ; \r \t I n t 1 L o _ ( I n
0007060 t 1 L o ) + T , a t [ A r
0007100 i t h D i s p , 2 ] ; \r \t T
0007120 _ I n t 2 H i , 376 001 \0 343 H F
0007140 r e e z e R e s u l t ; \r \t I n
0007160 t 1 H i _ ( I n t 1 H i )
0007200 + T , U s e C o u t a s C i
0007220 n , g o t o [ S t u f f B o x
0007240 ] ; \r \r @ B O X I D I F F E R E
0007260 N C E : \r \t g o t o [ U n b o x
0007300 ] , l s p U F N _ A r i t
0007320 h O p [ 3 6 7 , 1 2 ] c , o p
0007340 c o d e [ 3 6 7 ] ; \r \t I n t 1
0007360 L o _ ( I n t 1 L o ) -
0007400 T , a t [ A r i t h D i s p ,
0007420 1 2 ] ; \r \t T _ I n t 2 H
0007440 i , F r e e z e R e s u l t ;
0007460 \r \t I n t 1 H i _ ( I n t 1
0007500 H i ) - T , U s e C o u t
0007520 a s C i n , g o t o [ S t u 376
0007540 001 \0 227 314 f f B o x ] ; \r \r S t u
0007560 f f B o x : \t * C h e c k t
0007600 h a t f i r s t a r g i s
0007620 l a r g e ( U n b o x s e
0007640 t s i g n b i t i f s o
0007660 ) \r \t l s p U F N , s k i p [
0007700 R < 0 ] ; \r \t g o t o [ A r
0007720 i t h U f n ] ; \r \t P S t o r e
0007740 2 [ X B u f 2 , I n t 1 H i ,
0007760 0 ] , g o t o [ A r i t h E
0010000 x i t ] ; \r \t \t \t \t * a n y
0010020 f a u l t h e r e h a s a
0010040 l r e a d y h a p p e n e d \r
0010060 \r \r \r @ M A K E N U M B E R : \r
0010100 \t l s p U F N _ 3 6 5 c ,
0010120 g o t o [ l s p U f n x P 7 ] ,
0010140 o p c 376 001 \0 m | o d e [ 3 6 5
0010160 ] ; \t * M a k e N u m b e r \r
0010200 \f \r * I T I M E S 2 , o p
0010220 3 3 2 ; T I M E S 2 , o p
0010240 3 2 6 \r * T h i s a s s u m
0010260 e s t h a t t h e h i w
0010300 o r d s a r e 0 \r \r @ I T
0010320 I M E S 2 : \r \t g o t o [ U n b
0010340 o x ] , l s p U F N _ A r
0010360 i t h O p [ 3 3 2 , 1 0 ] c ,
0010400 o p c o d e [ 3 3 2 ] ; \t * I
0010420 T I M E S 2 \r \t g o t o [ U n b
0010440 o x ] , l s p U F N _ A r
0010460 i t h O p [ 3 2 6 , 1 0 ] c ,
0010500 o p c o d e [ 3 2 6 ] ; \t * T
0010520 I M E S 2 \r \r * \t A l g o r i t
0010540 h m t a k e n 376 001 \0 274 276 f r
0010560 o m F i a l a ' s a l t o
0010600 m i c r o c o d e : \r * \t O n
0010620 e a c h i t e r a t i o n ,
0010640 s h i f t L 0 , 1 r i g h t
0010660 b y o n e , t e s t i n g
0010700 t h e m u l t i p l i e r \r
0010720 * \t b i t s a s t h e y f
0010740 a l l o u t t h e r i g h
0010760 t . F o r e a c h 1 b
0011000 i t , a d d m u l t i p l i
0011020 c a n d \r * \t i n t o L 0 .
0011040 S h i f t i n g L 0 , 1 r
0011060 i g h t i s t h u s a n a
0011100 l o g o u s t o s h i f t i
0011120 n g t h e \r * \t m u l t i p l
0011140 i c a n d l e f t ( b u 376 001
0011160 \0 336 344 t m u c h e a s i e r
0011200 ) . D o u b l e - l e n g t
0011220 h r e s u l t i s \r * \t l
0011240 e f t i n L 0 , 1 w h e n
0011260 l a s t m u l t i p l i e r
0011300 b i t i s s h i f t e d
0011320 o u t \r \r * L o o p t i m e
0011340 : 8 t o 9 c y c l e s
0011360 o n m u l t i p l i e r z e
0011400 r o e s , 1 3 t o 1 5 o
0011420 n m u l t i p l i e r o n e
0011440 s \r \r \t T _ I n t 1 H i ,
0011460 a t [ A r i t h D i s p , 1 0
0011500 ] ; \t \t * c h e c k t h a t
0011520 h i w o r d s a r e z e
0011540 r o \r \t l u _ ( I n t 2 H i
0011560 ) o 376 001 \0 206 _ r T ; \r \t T
0011600 _ I n t 2 L o , g o t o [ M
0011620 u l P u n t a , a l u # 0 ] ;
0011640 \t * T _ m u l t i p l i c
0011660 a n d \r \t l s p L 4 _ 1 6 c
0011700 ; \t \t \t \t * s e t l o o p
0011720 c o u n t e r [ e v e n l o
0011740 c ] \r \t c a l l [ M u l L o o p
0011760 1 ] ; \t \t \t \t * a l l o c a t
0012000 i o n c o n s t r a i n t \r M
0012020 u l L o o p : \r \t l s p L 4 _
0012040 ( l s p L 4 ) - 1 , G o
0012060 T o [ M u l D o n e , R < 0 ]
0012100 ; \r M u l L o o p 1 : \r \t I n t
0012120 1 L o _ R S h [ I n t 1 L o
0012140 , 1 ] , S k i p [ R O d d ]
0012160 ; \t * s h i f 376 001 \0 212 350 t o
0012200 u t a m u l t i p l i e r
0012220 b i t \r \t I n t 1 H i _
0012240 R S h [ I n t 1 H i , 1 ] , D
0012260 b l G o T o [ M u l a , M u l b
0012300 , R O d d ] ; \t * n o a d
0012320 d \r \t I n t 1 H i _ ( I n t
0012340 1 H i ) + T ; \t \t \t * m p
0012360 r b i t = 1 , d o a d d \r
0012400 \t I n t 1 H i _ R C y [ I n
0012420 t 1 H i , 1 ] , S k i p [ C a
0012440 r r y ] ; \t * c y c l e r i
0012460 g h t , s a v i n g l o w
0012500 b i t \r \t \t \t \t \t \t * a s s
0012520 i g n b i t f o r o n e
0012540 m i \r \t I n t 1 H i _ (
0012560 I n t 1 H i ) a n d n 376 001 \0
0012600 b 036 o t ( 1 0 0 0 0 0 C ) ,
0012620 D b l G o T o [ M u l a , M u l
0012640 b , A L U < 0 ] ; \r \t \t \t \t \t *
0012660 n o c a r r y , s o s i
0012700 g n b i t i s o f f \r \t I
0012720 n t 1 H i _ ( I n t 1 H i )
0012740 o r ( 1 0 0 0 0 0 C ) , D
0012760 b l G o T o [ M u l a , M u l b
0013000 , A L U < 0 ] ; \r \t \t \t \t \t *
0013020 c a r r y , o r i t i n t
0013040 o s i g n \r \r M u l a : \t I n
0013060 t 1 L o _ ( I n t 1 L o )
0013100 o r ( 1 0 0 0 0 0 C ) , R e
0013120 t u r n ; \t * o r l o w b i
0013140 t o f L 0 i n t o s i g
0013160 n \r M u l b : \t R e t u r n ; \t
0013200 \t \t 376 001 \0 356 035 \t \t * l o w b i
0013220 t o f L 0 w a s 0 \r \r M
0013240 u l D o n e : \r \t l u _ I n
0013260 t 1 H i , g o t o [ I n t B o
0013300 x E a s y , R > = 0 ] ; \t *
0013320 B o x t h e r e s u l t \r \t
0013340 g o t o [ A r i t h U f n ]
0013360 ; \t \t \t * O v e r f l o w \r M
0013400 u l P u n t a : g o t o [ A r
0013420 i t h U f n ] ; \t \t \t * n o t
0013440 s m a l l p o s * s m a l l p
0013460 o s \r \r \r \r % O l d v e r
0013500 s i o n \r \r \t l u _ ( I n t 1
0013520 H i ) , a t [ A r i t h D i s
0013540 p , 5 ] ; \r \t l u _ ( I n t
0013560 2 H i ) , g o t o [ I T i m e
0013600 s 5 , a l u 376 001 \0 ^ t # 0 ] ;
0013620 \r \t g o t o [ I T i m e s 6 ,
0013640 a l u # 0 ] ; \t \t * a l l o
0013660 c a t i o n c o n s t r a i n
0013700 t \r \t T _ ( I n t 2 L o ) ;
0013720 \r \t l s p L 4 _ ( 0 c ) , c
0013740 a l l [ . + 1 ] ; \r \t I n t 1 L
0013760 o _ r s h [ I n t 1 L o ,
0014000 1 ] , g o t o [ I t i m e s 1
0014020 , R O d d ] ; \r \t g o t o [ I
0014040 t i m e s D N , a l u = 0 ] ;
0014060 \r I T i m e s 3 : \r \t T _ I
0014100 n t 2 L o _ l s h [ I n t 2 L
0014120 o , 1 ] , g o t o [ I t i m
0014140 e s 4 , R < 0 ] ; \r \t r e t u
0014160 r n ; \r I T i m e s 1 : \r \t l s
0014200 p L 4 _ ( l s p L 4 ) 376 001 \0 377
0014220 261 + T ; \r \t g o t o [ I T i
0014240 m e s 2 , c a r r y ] ; \r \t g
0014260 o t o [ I T i m e s 3 ] ; \r \r I
0014300 T i m e s 2 : g o t o [ A r i
0014320 t h U f n ] ; \r I T i m e s 4 :
0014340 g o t o [ A r i t h U f n ] ;
0014360 \r I T i m e s 5 : g o t o [ A
0014400 r i t h U f n ] ; \r I T i m e s
0014420 6 : g o t o [ A r i t h U f n
0014440 ] ; \r I T i m e s D N : \r \t T
0014460 _ l s p L 4 ; \r \t I n t 1 L o
0014500 _ T ; \r \t T _ I n t 2 H
0014520 i ; \r \t I n t 1 H i _ ( I n
0014540 t 1 H i ) x o r T , g o t
0014560 o [ I n t B o x E a s y ] ; \r %
0014600 \r \f \r * I Q U O T I E N T ,
0014620 I 376 001 \0 j X R E M A I N D E R ,
0014640 o p s 3 3 3 , 3 3 4 ; Q
0014660 U O T I E N T , o p 3 2 7 \r
0014700 \r @ I Q u o t i e n t : \r \t g o
0014720 t o [ U n b o x ] , l s p U F
0014740 N _ A r i t h O p [ 3 3 3 ,
0014760 1 4 ] c , o p c o d e [ 3 3 3
0015000 ] ; \t * I Q u o t i e n t \r @
0015020 I R e m a i n d e r : \r \t g o t
0015040 o [ U n b o x ] , l s p U F N
0015060 _ A r i t h O p [ 3 3 4 , 1
0015100 3 ] c , o p c o d e [ 3 3 4 ]
0015120 ; \t * I R e m a i n d e r \r \t
0015140 g o t o [ U n b o x ] , l s p
0015160 U F N _ A r i t h O p [ 3 2
0015200 7 , 1 4 ] c , o p c o d e [ 3
0015220 2 7 ] ; \t * 376 001 \0 276 020 Q u o t
0015240 i e n t \r \r * D i v i d e L
0015260 0 , , L 1 b y L 3 , q u o
0015300 t i e n t i n L 1 , r e m
0015320 a i n d e r i n L 0 \r * P
0015340 u n t i f d i v i d e n d
0015360 i s n e g a t i v e , d i v
0015400 i s o r i s n o t s m a l
0015420 l , o r r e s u l t i s
0015440 n o t s m a l l \r * T h e
0015460 c o m p a c t i n n e r l o
0015500 o p h e r e i s t a k e n
0015520 f r o m F i a l a ' s a l
0015540 t o m i c r o c o d e \r * \r \t
0015560 g o t o [ r e t D i v ] , a t
0015600 [ A r i t h D i s p , 1 3 ] ;
0015620 \r \r r e t D i v : \t T 376 001 \0 365 277
0015640 _ I n t 2 H i , a t [ A r
0015660 i t h D i s p , 1 4 ] ; \t \t *
0015700 g e t h i d i v i s o r \r
0015720 \t l u _ ( l d f [ I n t 1 H
0015740 i , 0 , 1 ] ) o r T ; \t
0015760 \t * a n d c h e c k s i g
0016000 n o f d i v i d e n d \r \t T
0016020 _ I n t 2 L o , g o t o [
0016040 D i v P u n t a , a l u # 0 ]
0016060 ; \t * p u n t i f e i t h
0016100 e r b a d \r \t l u _ ( I n
0016120 t 1 H i ) - T ; \r \t \t \t \t \t
0016140 * c o m p a r e h i d i v
0016160 i d e n d : d i v i s o r \r
0016200 \t l s p L 4 _ 1 6 c , g o
0016220 t o [ D i v P u n t c , C a r
0016240 376 001 \0 271 303 r y ] ; \r \t \t \t \t *
0016260 p u n t i f L 0 g e L 3
0016300 , i . e . r e s u l t i s
0016320 l a r g e \r \t \t \t \t * n o t
0016340 e t h i s i s t r u e i
0016360 f z e r o d i v i s o r ,
0016400 t o o \r \t T _ 3 1 c ; \r \t S
0016420 A L U F _ T , T _ I n
0016440 t 2 L o ; \t \t \t * S A L U F
0016460 _ A + A + C y 1 \r \t I n t 2 H
0016500 i _ ( Z e r o ) - T ; \t
0016520 \t \t * L 2 _ - ( d i v i s
0016540 o r ) \r \r * A l g o r i t h m
0016560 : s h i f t L 0 , 1 l e f
0016600 t o n e , s u b t r a c t i
0016620 n g d i v i s o r f r o m
0016640 L 0 . 376 001 \0 c 206 I f \r * s
0016660 u b t r a c t i o n s u c c e
0016700 e d s , s h i f t a 1 q
0016720 u o t i e n t b i t i n o
0016740 n t h e r i g h t o f L
0016760 1 , e l s e \r * z e r o .
0017000 T h e i n s t r u c t i o n
0017020 a t D i v L o o p s h i f
0017040 t s L 0 a n d s u b t r a
0017060 c t s L 3 a t t h e \r *
0017100 s a m e t i m e ; t h e i
0017120 n s t r u c t i o n a t D i
0017140 v R e t h a s s e t T t
0017160 h e n e g a t i o n o f t
0017200 h e d i v i s o r \r * p l u
0017220 s t h e s i g n b i t s
0017240 h i f t e d o u t 376 001 \0 016 ~
0017260 o f L 1 i n t h e p r e
0017300 v i o u s i n s t r u c t i o
0017320 n . T h e - 1 \r * a t
0017340 D i v R e t a n d t h e +
0017360 1 a t D i v L o o p c a n
0017400 c e l e a c h o t h e r ,
0017420 b u t m a k e s t h e c a
0017440 r r y \r * c o m e o u t r
0017460 i g h t f o r d i v i s o r
0017500 1 o r 1 7 7 7 7 7 . \r \r *
0017520 L o o p t i m e : 9 c y
0017540 c l e s f o r q u o t i e n
0017560 t 1 ' s , 1 2 f o r q u
0017600 o t i e n t 0 ' s \r \r * S e
0017620 t t i n g u p b e f o r e
0017640 t h e l o o p , L 1 g e 376
0017660 001 \0 r ^ t s a " d o n ' t
0017700 c a r e " 1 b i t s h i f
0017720 t e d i n o n \r * t h e
0017740 r i g h t , w h i c h w i l
0017760 l b e s h i f t e d o u t
0020000 t h e t o p o n t h e
0020020 l a s t i t e r a t i o n . \r
0020040 \r \t I n t 1 L o _ ( I n t 1
0020060 L o ) S A L U F O P T , C
0020100 a l l [ D i v R e t ] ; \r D i v
0020120 L o o p : \t \t * S h i f t h
0020140 i d i v i d e n d l e f t ,
0020160 s u b t r a c t i n g d i v
0020200 i s o r \r \t I n t 1 H i _ (
0020220 L S h [ I n t 1 H i , 1 ] ) +
0020240 T + 1 , S k i p [ R > =
0020260 0 ] ; \r 376 001 \0 272 373 \t \t \t * S h
0020300 i f t l o w d i v i d e n d
0020320 , b r i n g i n g i n q u
0020340 o t i e n t b i t 1 \r \t
0020360 I n t 1 L o _ ( I n t 1 L o
0020400 ) S A L U F O P T , G o T
0020420 o [ D i v S u b ] ; \r \t \t \t *
0020440 S h i f t l o w d i v i d e
0020460 n d , b r i n g i n g i n
0020500 q u o t i e n t b i t = 1
0020520 \r \t \t \t * i f s u b t r a c
0020540 t c a r r i e d ( h i d i
0020560 v i d e n d w a s g e d i
0020600 v i s o r ) \r \t I n t 1 L o _
0020620 ( I n t 1 L o ) S A L U F O
0020640 P T , U s e C O u t A s C I
0020660 n , G o T o [ D 376 001 \0 m 373 i v
0020700 S u b , C a r r y ] ; \r \r * S u
0020720 b t r a c t f a i l e d .
0020740 U n d o i t , l o v i n g l
0020760 y p r e s e r v i n g t h e
0021000 c a r r y b i t d o w n
0021020 t o D i v R e t . \r \t T _
0021040 I n t 2 L o , F r e e z e R e
0021060 s u l t ; \r \t I n t 1 H i _
0021100 ( I n t 1 H i ) + T , F r
0021120 e e z e R e s u l t ; \r \r D i v
0021140 S u b : \t \t \t * d e c r e m e
0021160 n t l o o p c o u n t e r ,
0021200 q u i t i f d o n e \r \t l
0021220 s p L 4 _ ( l s p L 4 ) -
0021240 1 , F r e e z e R e s u l t
0021260 , g o t o [ D i v D o n e 376 001
0021300 \0 302 021 , R < 0 ] ; \r D i v R e
0021320 t : \t \t \t * T _ - ( d i v
0021340 i s o r ) + ( o l d s i g
0021360 n b i t o f L 1 ) - 1
0021400 \r \t T _ ( I n t 2 H i ) -
0021420 1 , U s e C O u t A s C I n
0021440 , R e t u r n ; \t \t * r e t
0021460 u r n t o D i v L o o p \r \r
0021500 D i v D o n e : \t \t \t \t * p u
0021520 s h r e s u l t ( a s m a
0021540 l l p ) o n s t a c k \r \t l
0021560 s p U F N , s k i p [ R O d
0021600 d ] ; \t \t * w h i c h c a s
0021620 e w a s i t ? \r \t T _
0021640 I n t 1 L o , g o t o [ B o
0021660 x S m a l l P l ] ; \t * e v e
0021700 n , 376 001 \0 371 243 g e t q u o t
0021720 i e n t \r \t T _ I n t 1
0021740 H i , g o t o [ B o x S m a l
0021760 l P l ] ; \t * o d d , g e t
0022000 r e m a i n d e r \r \r \r D i v
0022020 P u n t a : g o t o [ A r i t
0022040 h U f n ] ; \r D i v P u n t c :
0022060 g o t o [ A r i t h U f n ] ;
0022100 \r \t \r \r \f \r o n p a g e [ p g A
0022120 r i t h O p s ] ; \r \r * M a i
0022140 n u n b o x i n g r o u t i
0022160 n e . P u t T O S i n t
0022200 o I n t 2 H i / L o , T O S
0022220 - 1 i n t o I n t 1 H i / L
0022240 o . \r * P u n t i f n e c
0022260 e s s a r y . R e t u r n
0022300 t h r u A r i 376 001 \0 H 006 t h o
0022320 p s d i s p a t c h w i t h
0022340 T = L 3 . \r \r * C y c l
0022360 e s t h r u f i n a l d i
0022400 s p : 1 0 + 2 u n b o x
0022420 e s + u p t o 6 c y c l
0022440 e s i f I n t 1 i n t e r
0022460 l o c k s \r * f o r l a r g
0022500 e I n t 1 H i / L o . U n
0022520 b o x t i m e : 1 1 / S m a
0022540 l l p o s , 1 0 / S m a l l N
0022560 e g , 6 0 / l a r g e p \r \r U
0022600 n b o x : \r \t l o a d p a g e [
0022620 p g H S t a c k ] , c a l l [
0022640 C h e c k E l t 2 P 7 ] ; \r \t T
0022660 _ S t a c k & - 1 , l o a
0022700 d p a g e [ p g A r i t h 376 001 \0
0022720 033 Y ] ; \r \t I n t 2 L o _ T
0022740 ; \r o n p a g e [ p g A r i t h
0022760 ] ; \r \t l u _ ( S t a c k )
0023000 x o r ( s m a l l N e g ) ;
0023020 \r \t l u _ ( S t a c k & - 1
0023040 ) x o r ( s m a l l p l ) ,
0023060 s k i p [ a l u # 0 ] ; \r \t
0023100 I n t 2 H i _ ( Z e r o )
0023120 - 1 , g o t o [ U n B o x
0023140 T o p D o n e ] ; \r \t I n t 2 H
0023160 i _ 0 c , g o t o [ U n B
0023200 o x T o p D o n e , a l u = 0
0023220 ] ; \r \t S t a c k & + 2 , c a
0023240 l l [ U n b o x T y p e ] ; \r \t
0023260 P F e t c h 2 [ X B u f 2 , I
0023300 n t 2 H i , 0 ] , g o t o [
0023320 U n 376 001 \0 255 v B o x T o p D o n
0023340 e ] ; \r \r U n B o x T o p D o n
0023360 e : \r \t T _ S t a c k & - 1
0023400 ; \r \t I n t 1 L o _ T ; \r \t
0023420 l u _ ( S t a c k ) x o r
0023440 ( s m a l l N e g ) ; \r \t l u
0023460 _ ( S t a c k & + 1 ) x o
0023500 r ( s m a l l p l ) , s k i
0023520 p [ a l u # 0 ] ; \r \t I n t
0023540 1 H i _ ( Z e r o ) - 1
0023560 , g o t o [ U n B o x B o t D
0023600 o n e ] ; \r \t I n t 1 H i _
0023620 0 c , g o t o [ U n B o x B o
0023640 t D o n e , a l u = 0 ] ; \r \t
0023660 l s p U F N _ ( l s p U F N
0023700 ) o r ( 1 0 0 0 0 0 c ) ,
0023720 c a l l [ U n 376 001 \0 357 264 b o x T
0023740 y p e ] ; \r \t P F e t c h 2 [ X
0023760 B u f 2 , I n t 1 H i , 0 ]
0024000 ; \r \t S t a c k & + 2 , g o t
0024020 o [ U n B o x B o t D o n e ] ;
0024040 \r \r U n B o x B o t D o n e : \r
0024060 \t d i s p a t c h [ l s p U F N
0024100 , 1 4 , 4 ] ; \r \t T _ I
0024120 n t 2 L o , d i s p [ A r i t
0024140 h O p s ] ; \r \r U n b o x T y p
0024160 e : \t \t * P o p T O S i n
0024200 t o X B u f 2 , 3 a s b a
0024220 s e r e g , p u n t i f n
0024240 o t f i x p \r \t T _ S t a
0024260 c k & - 1 ; \r \t X B u f 2 _
0024300 T ; \r \t T _ l s h [ S t a c
0024320 k & - 1 , 1 0 ] ; \r \t 376 001 \0 p
0024340 u X B u f 3 _ T ; \r \t T _
0024360 r s h [ X B u f 2 , 1 1 ] ;
0024400 \r \t T _ ( r s h [ X B u f 3
0024420 , 1 ] ) o r T ; \r \t P F e
0024440 t c h 1 [ M D S T y p e B a s e
0024460 B r , l s p T y p e ] ; \r \t T
0024500 _ ( f i x p T y p e ) ; \t \t
0024520 \t * D o e s n ' t s a v e
0024540 s p a c e , b u t t i m e \r
0024560 \t l u _ ( r h m a s k [ l s
0024600 p T y p e ] ) x o r T ; \r \t
0024620 s k i p [ a l u = 0 ] ; \r \t
0024640 g o t o [ A r i t h U f n ] ; \r
0024660 \t r e t u r n ; \r \r \f \r o n p a
0024700 g e [ p g A r i t h ] ; \r \r *
0024720 C o m e h e r e t o b o x
0024740 376 001 \0 E B r e s u l t . A
0024760 l u = I n t 1 H i a t I
0025000 n t B o x E a s y , B o x C h
0025020 e c k \r \r I n t B o x : \t \t \t \t
0025040 \t * c h e c k f o r o v e
0025060 r f l o w b e f o r e b o x
0025100 i n g \r \t T _ I n t 1 L o ,
0025120 s k i p [ n o o v f ] ; \t *
0025140 T _ l o h a l f o f
0025160 r e s u l t \r \t g o t o [ A
0025200 r i t h U f n ] ; \r \t l u _
0025220 I n t 1 H i , g o t o [ B o x
0025240 C h e c k ] ; \r \r I n t B o x E
0025260 a s y : \t \t \t \t * H e r e i
0025300 f n o o v e r f l o w p o
0025320 s s i b l e \r \t T _ I n t 1
0025340 L o , F r 376 001 \0 020 l e e z e R
0025360 e s u l t , g o t o [ B o x C
0025400 h e c k ] ; \r \r B o x C h e c k
0025420 : \t * C h e c k f o r s m
0025440 a l l p o s ( I n t 1 H i =
0025460 0 ) a n d s m a l l n e g
0025500 ( I n t 1 H i = - 1 ) \r \t
0025520 l u _ ( I n t 1 H i ) +
0025540 1 , g o t o [ B o x S m a l l
0025560 p l , a l u = 0 ] ; \r \t l s p
0025600 N a r g s _ 2 c , g o t o
0025620 [ B o x S m a l l n e g , a l
0025640 u = 0 ] ; \r \r : I F [ W i t h C
0025660 r e a t e C e l l ] ; \r B o x B
0025700 i g : \t l o a d p a g e [ o p P
0025720 a g e 0 ] ; \t \t * C r e a t e
0025740 a n e w f i x p 376 001 \0 335 ]
0025760 c e l l \r \t q B u f _ l s
0026000 h i f t [ f i x p T y p e ! ,
0026020 4 ] c , c a l l p [ D o C r e
0026040 a t e C e l l ] ; \r \t P S t o r
0026060 e 2 [ l s p G e n B r , I n t
0026100 1 H i , 0 ] ; \t * C a n ' t
0026120 f a u l t n o w \r \t l o a d
0026140 p a g e [ p g R p l P t r ] ; \r
0026160 \t S t k S t a t e _ r s h [
0026200 S t k S t a t e , 1 ] , g o
0026220 t o p [ G c E x i t ] ; \r \r : E
0026240 L S E ; \r B o x B i g : \t * B
0026260 o x b i g r e s u l t b y
0026300 p u s h i n g h a l v e s
0026320 a s s m a l l p s a n d c
0026340 a l l i n g M a k e n u m b e
0026360 376 001 \0 253 < r \r \t S t a c k & - 1
0026400 _ ( s m a l l p l ) ; \r \t T
0026420 _ I n t 1 H i ; \r \t S t a c
0026440 k & + 1 _ T ; \r \t S t a c k
0026460 & + 1 _ ( s m a l l p l ) ;
0026500 \r \t T _ I n t 1 L o ; \r \t S
0026520 t a c k & + 1 _ T , l o a
0026540 d p a g e [ p g F r a m e ] ; \r
0026560 \t l s p D e f x 1 _ ( M a k
0026600 e N u m b e r ) , g o t o [ l
0026620 s p C a l l F n 0 ] ; \r : E N D
0026640 I F ; \r \r \r B o x S m a l l P l
0026660 : \r \t S t a c k & - 1 _ ( s
0026700 m a l l p l ) , g o t o [ b o
0026720 x 1 ] ; \r \r B o x S m a l l n e
0026740 g : \r \t S t a c k & - 1 _ (
0026760 s m a l l 376 001 \0 001 277 N e g ) ,
0027000 g o t o [ b o x 1 ] ; \r \r b o x
0027020 1 : \t S t a c k & + 1 _ T ;
0027040 \r \r A r i t h E x i t : \r \t S t
0027060 k S t a t e _ r s h [ S t k
0027100 S t a t e , 1 ] , g o t o [
0027120 n x i L B L ] ; \r \r \r \r * P u
0027140 n t h e r e : D i s p a t c
0027160 h l s p U F N t h r u a
0027200 t a b l e o f u f n s \r *
0027220 L o w 2 b i t s s e l e c
0027240 t s t h e a p p r o p r i a
0027260 t e h i 4 b i t s \r \r A r
0027300 i t h U f n : \r \t d i s p a t c
0027320 h [ l s p U F N , 1 6 , 2 ]
0027340 ; \r \t l s p U F N _ l d f [
0027360 l s p U F N , 1 0 376 001 \0 254 c ,
0027400 4 ] , d i s p [ . + 1 ] ; \r
0027420 \t l s p U F N _ ( l s p U F
0027440 N ) o r ( 3 2 0 c ) , g o
0027460 t o [ u f n L B L ] , d i s p
0027500 t a b l e [ 4 ] ; \t * 0 0 \r \t
0027520 l s p U F N _ ( l s p U F N
0027540 ) o r ( 3 4 0 c ) , g o t
0027560 o [ u f n L B L ] ; \t \t \t * 0
0027600 1 \r \t l s p U F N _ ( l s p
0027620 U F N ) o r ( 3 6 0 c ) ,
0027640 g o t o [ u f n L B L ] ; \t \t \t
0027660 * 1 0 \r \t l s p U F N _ (
0027700 l s p U F N ) o r ( 3 2 0 c
0027720 ) , g o t o [ u f n L B L ] ;
0027740 \t \t \t * 1 1 \r \r % D i s p a
0027760 t c h e s a r e s e t a 376
0030000 001 \0 I 023 s f o l l o w s : \r \r
0030020 o p \t c o d e \t d i s p \t \t
0030040 \t o p \t c o d e \t d i s p \r
0030060 I P L U S 2 3 3 0 \t 0 \t
0030100 \t \t L O G O R \t 3 4 4 \t 1 \r
0030120 P L U S 2 3 2 4 \t 0 \r
0030140 I D I F F R N C E 3 3 1 \t 4 \t
0030160 \t \t L O G A N D \t 3 4 5 \t 5
0030200 \r D I F F R N C E 3 2 5 \t 4
0030220 \r I T I M E S 3 3 2 \t 1
0030240 0 \t \t \t L O G X O R \t 3 4 6
0030260 \t 1 1 \r T I M E S 3 2
0030300 6 \t 1 0 \r I Q U O T I E N T 3
0030320 3 3 \t 1 4 \t \t \t - - - \t \t 1 5
0030340 \r Q U O T I E N T 3 2 7 \t 1
0030360 4 \r \r B O X I P L U S 3 6 6
0030400 \t 2 \t \t 376 \0 ~ T 372 \t - - - \t \t
0030420 3 \r \r I G R E A T E R P 3 6 1
0030440 \t 6 \t \t \t - - - \t \t 7 \r G R
0030460 E A T E R P 3 6 3 \t 6 \r B O X
0030500 I D I F F 3 6 7 \t 1 2 \t \t \t
0030520 I R E M A I N D E R 3 3 4 \t 1
0030540 3 \r \r - - - \t \t 1 6 \t \t \t -
0030560 - - \t \t 1 7 \r % \r \t : E N D [ A
0030600 r i t h ] ; \r 377 \0 \0 B i n d i n
0030620 g s . 0 m c \0 373 231 . { ^ \0 \0 376 001
0030640 \0 ; 003 : T I T L E [ B i n d i n
0030660 g s . 0 m c . . . J u n e 9 ,
0030700 1 9 8 2 2 : 5 1 P M ,
0030720 v a n M e l l e ] ; \r \r * * *
0030740 * * * * * \r * B I N D b
0030760 y t e 1 ( l s p L N ) =
0031000 n , v B y t e 2 ( l s p
0031020 L 2 ) = N \r * n =
0031040 n u m b e r o f P V A R S
0031060 b o u n d t o N I L \r *
0031100 v = n u m b e r o f P
0031120 V A R S b o u n d t o v a
0031140 l u e s p o p p e d o f f
0031160 s t a c k \r * N = > l
0031200 a s t P V A R i s s t o r
0031220 e d i n t o s l o t N \r \r
0031240 l s p 376 001 \0 245 226 B i n d : \r \t l
0031260 o a d p a g e [ p g B i n d ] ,
0031300 o p c o d e [ 0 2 1 ] ; \r \t g
0031320 o t o p [ . + 1 ] ; \r o n p a g
0031340 e [ p g B i n d ] ; \r \t T _
0031360 N e x t D a t a [ I B u f ] ; \r
0031400 \t l s p L N _ T ; \r \r \t T
0031420 _ N e x t D a t a [ I B u f ]
0031440 ; \r \t l s p L 2 _ T ; \r \t \t
0031460 \t \t \t * L N = 0 , 0 , n ,
0031500 v \r \t T _ ( l d f [ l s p L
0031520 N , 1 0 , 4 ] ) - 1 ; \t
0031540 * T _ n - 1 \r \t l s p L 4
0031560 _ T ; \r \t T _ ( l d f [
0031600 l s p L N , 1 4 , 4 ] ) -
0031620 1 ; \t * T _ v - 1 \r \t l
0031640 s p L 3 _ T 376 001 \0 261 J ; \r \r
0031660 \t T _ l s p L 2 _ l s h
0031700 [ l s p L 2 , 1 ] , t a s k
0031720 ; \t * N * 2 \r \r \t l s p L 0
0031740 _ 0 C ; \t \t \t * T 0 _ N I L
0031760 \r \t l s p L 1 _ 0 C , c a
0032000 l l [ . + 1 ] ; \t \t * T 0 _ N
0032020 I L \r \r l s p B N i l : \r \t l s
0032040 p L 4 _ ( l s p L 4 ) -
0032060 1 , g o t o [ l s p B N i l F
0032100 i n , R < 0 ] ; \r \t P S t o r
0032120 e 2 [ l s p E p , l s p L 0 ]
0032140 ; \t \t * P u s h N I L \r \t T
0032160 _ ( F o r m - 2 [ A l l O n
0032200 e s ] ) + T , r e t u r n
0032220 ; \t * T _ T - 2 , r e t
0032240 u r n t o l s p B N i 376 001 \0
0032260 006 244 l \r \r l s p B N i l F i n :
0032300 \t \t \t \t * O d d p l a c e m
0032320 e n t \r \r l s p B V a l : \t \t \t
0032340 * * * t h i s l o o p m a
0032360 y n e e d t a s k i n g \r \t
0032400 l s p L 3 _ ( l s p L 3 )
0032420 - 1 , g o t o [ l s p B V a
0032440 l F i n , R < 0 ] ; \r \t P S t
0032460 o r e 2 [ l s p E p , S t a c
0032500 k ] ; \t \t * P o p S t a c k
0032520 i n t o n e x t p v a r \r
0032540 \t S t k S t a t e _ r c y [
0032560 S t k S t a t e , 1 ] , g o
0032600 t o [ l s p B V a l 1 , R e v
0032620 e n ] ; \r \t l o a d p a g e [ p
0032640 g H S t a c k ] ; \r \t c a l l p
0032660 [ H 376 001 \0 032 220 S t k U n d F l w
0032700 ] ; \t \t * A s s u m e s T
0032720 u n d i s t u r b e d ! ! ! \r l
0032740 s p B V a l 1 : \r \t T _ ( F
0032760 o r m - 2 [ A l l O n e s ] )
0033000 + T , g o t o [ l s p B V a
0033020 l ] ; \t * T _ T - 2 \r \r l
0033040 s p B V a l F i n : \r \t T _
0033060 ( l d f [ l s p L N , 1 0 ,
0033100 4 ] ) ; \r \t T _ ( l d f [ l
0033120 s p L N , 1 4 , 4 ] ) +
0033140 T , t a s k ; \t * T _ n
0033160 + v \r \t S t a c k & + 1 _ (
0033200 z e r o ) - T - 1 ; \t \t
0033220 * p u s h - ( n + v ) - 1
0033240 \r \t T _ l s p L 2 ; \r \t S t
0033260 a c k & + 1 376 001 \0 034 345 _ T ,
0033300 g o t o [ P u s h L B L ] ; \t
0033320 \t * p u s h 2 * N \r \f \r * *
0033340 * * * * \r * U N B I N D , D
0033360 U N B I N D \r \r l s p D U n B i
0033400 n d : \t \t \t \t \t * u n b i n d
0033420 , d i s c a r d v a l u e \r
0033440 \t l o a d p a g e [ p g B i n d
0033460 ] , o p c o d e [ 0 2 3 ] ; \r
0033500 \t l s p L 0 _ ( u n b o u n
0033520 d P v a r ) , g o t o p [ l s
0033540 p U n b P o p 0 ] ; \r \r l s p U
0033560 n B i n d : \t \t \t \t \t * u n b
0033600 i n d , p r e s e r v e T O
0033620 S \r \t l o a d p a g e [ p g B i
0033640 n d ] , o p c o d e [ 0 2 2 ] ;
0033660 \r \t T _ S t a c k & 376 001 \0 \0
0033700 311 - 1 ; \r o n p a g e [ p g B i
0033720 n d ] ; \r \t l s p L 1 _ T ;
0033740 \t \t \t \t * P o p T O S i n
0033760 t o L 0 , 1 \r \t T _ S t a
0034000 c k & - 1 ; \r \t l s p L 0 _
0034020 T , g o t o [ l s p U n b P o
0034040 p ] ; \r \r l s p U n b P o p : \t
0034060 \t \t \t \t * P o p c h e c k \r
0034100 \t S t k S t a t e _ r c y [
0034120 S t k S t a t e , 1 ] , g o
0034140 t o [ l s p U n b P o p 0 , R
0034160 E v e n ] ; \r \t l o a d p a g
0034200 e [ p g H S t a c k ] ; \r \t c a
0034220 l l p [ H S t k U n d F l w ] ;
0034240 \r l s p U n b P o p 0 : \r \t M N
0034260 B R _ S t a c k & - 1 ; \t \t
0034300 \t 376 001 \0 m 305 * o f f s e t o
0034320 f l a s t v a r t o u n
0034340 b i n d \r \t T _ ( S t a c k
0034360 & - 1 ) + 1 , g o t o [ l
0034400 s p U n b P o p , R > = 0 ] ;
0034420 \r \t \t \t * T _ # v a r s
0034440 t o u n b i n d ; i f n o
0034460 n - n e g a t i v e , t h i s
0034500 w a s n o t a \r \t \t \t *
0034520 b i n d i n g m a r k , s o
0034540 k e e p p o p p i n g u n
0034560 t i l i t i s \r \t l s p L 2
0034600 _ T ; \r \t T _ M N B R ;
0034620 \r \t l s p L N _ ( u n b o u
0034640 n d P v a r ) , c a l l [ . +
0034660 1 ] ; \r \r l s p U n b P o p 2 :
0034700 \r \t l s p L 376 001 \0 v w 2 _ (
0034720 l s p L 2 ) + 1 , g o t o
0034740 [ l s p U n b P o p 3 , R > =
0034760 0 ] ; \r \t P S t o r e 1 [ l s p
0035000 E p , l s p L N ] ; \r \t T _
0035020 ( F o r m - 2 [ A l l O n e s
0035040 ] ) + T , r e t u r n ;
0035060 * T _ T - 2 ,
0035100 r e t u r n t o l s p U n b
0035120 P o p 2 \r \r l s p U n b P o p 3
0035140 : \r \t T _ l s p L 0 , s k
0035160 i p [ R > = 0 ] ; \r \t g o t
0035200 o [ P o p L B L ] ; \r \t S t a c
0035220 k & + 1 _ T ; \t \t \t \t * P
0035240 u s h L 0 , 1 b a c k o n
0035260 \r \t T _ l s p L 1 ; \r \t S t
0035300 a c k & + 1 _ T , 376 \0 ] 261 $
0035320 g o t o [ n x i L B L ] ; \r \t
0035340 \t * n o o v e r f l o w p
0035360 o s s i b l e , s i n c e w
0035400 e p o p p e d a t l e a s
0035420 t o n e t h i n g \r \r : E N
0035440 D [ B i n d i n g s ] ; \r 377 \0 \0
0035460 F e t c h . 0 m c \0 373 232 L f 212 \0
0035500 \0 376 001 \0 037 375 : T I T L E [ F e t
0035520 c h . 0 m c . . . J a n u a r y
0035540 1 2 , 1 9 8 3 1 0 : 5 0
0035560 A M , v a n M e l l e ] ;
0035600 \r \r S e t [ F e t c h D e b u g
0035620 , 0 ] ; \r S e t [ N o I n t e
0035640 r r u p t s , 0 ] ; \r \r * \t G
0035660 O T O [ R E F I L L Y ] , L O A
0035700 D P A G E [ 0 ] , a t [ 0 0 0 1
0035720 ] ; \r \r * \t o n l y r e q u i
0035740 r e d o n p a g e s t h a
0035760 t c o n t a i n N e x t I n
0036000 s t / N e x t D a t a ' s \r R E
0036020 F I L L Y : \r * \t P F e t c h 4
0036040 [ P C B , I B u f , 4 ] ,
0036060 g o t o p [ R e f i l l I B u f
0036100 ] , a t [ 376 001 \0 357 5 0 3 7 7 ]
0036120 ; * p a g e 0 a l t o \r
0036140 * \t P F e t c h 4 [ P C B , I
0036160 B u f , 4 ] , g o t o p [ R
0036200 e f i l l I B u f ] , a t [ 0
0036220 7 7 7 ] ; * p a g e 1 a
0036240 l t o \r * \t P F e t c h 4 [ P C
0036260 B , I B u f , 4 ] , g o t
0036300 o p [ R e f i l l I B u f ] ,
0036320 a t [ 1 3 7 7 ] ; * p a g e
0036340 2 a l t o \r * \t P F e t c h
0036360 4 [ P C B , I B u f , 4 ] ,
0036400 g o t o p [ R e f i l l I B u
0036420 f ] , a t [ 1 7 7 7 ] ; * p
0036440 a g e 3 a l t o \r \r \t P F
0036460 e t c h 4 [ P C B , I B u f ,
0036500 4 ] , g o t o p [ 376 001 \0 300 /
0036520 R e f i l l I B u f ] , a t [
0036540 2 3 7 7 ] ; * p a g e 4 \r
0036560 l s p N e x t I n s t P 4 : \t l
0036600 u _ N e x t I n s t [ I B u
0036620 f ] ; \r l n i x P 4 : \t \t N I R
0036640 E T ; \r \r \t P F e t c h 4 [ P C
0036660 B , I B u f , 4 ] , g o t
0036700 o p [ R e f i l l I B u f ] ,
0036720 a t [ 2 7 7 7 ] ; * p a g e
0036740 5 \r l s p N e x t I n s t P 5
0036760 : \t l u _ N e x t I n s t [
0037000 I B u f ] ; \r l n i x P 5 : \t \t
0037020 N I R E T ; \r \r \t P F e t c h 4
0037040 [ P C B , I B u f , 4 ] ,
0037060 g o t o p [ R e f i l l I B u f
0037100 ] , a t [ 3 3 7 7 ] ; * p a
0037120 376 001 \0 375 q g e 6 \r l s p N e
0037140 x t I n s t P 6 : \t l u _ N
0037160 e x t I n s t [ I B u f ] ; \r l
0037200 n i x P 6 : \t \t N I R E T ; \r \r
0037220 \t P F e t c h 4 [ P C B , I B
0037240 u f , 4 ] , g o t o p [ R e
0037260 f i l l I B u f ] , a t [ 3 7
0037300 7 7 ] ; * p a g e 7 \r l s
0037320 p N e x t I n s t P 7 : \t l u
0037340 _ N e x t I n s t [ I B u f ]
0037360 , a t [ P 7 T a i l L o c ] ;
0037400 \t * p l a c e d f o r o v
0037420 e r l a y s \r l n i x P 7 : \t \t
0037440 N I R E T ; \r \r * \t P F e t c h
0037460 4 [ P C B , I B u f , 4 ] ,
0037500 g o t o p [ R e f i l l I B u
0037520 f ] , a 376 001 \0 031 [ t [ 4 3 7 7
0037540 ] ; * p a g e 1 0 \r \r * \t P
0037560 F e t c h 4 [ P C B , I B u f
0037600 , 4 ] , g o t o p [ R e f i
0037620 l l I B u f ] , a t [ 4 7 7 7
0037640 ] ; * p a g e 1 1 \r \r \t P F
0037660 e t c h 4 [ P C B , I B u f ,
0037700 4 ] , g o t o p [ R e f i l
0037720 l I B u f ] , a t [ 5 3 7 7 ]
0037740 ; * p a g e 1 2 \r l s p N e
0037760 x t I n s t P 1 2 : \t l u _
0040000 N e x t I n s t [ I B u f ] ; \r
0040020 l n i x P 1 2 : \t N I R E T ;
0040040 \r \r * \t P F e t c h 4 [ P C B ,
0040060 I B u f , 4 ] , g o t o p
0040100 [ R e f i l l I B u f ] , a t
0040120 [ 5 7 7 7 ] ; * p 376 001 \0 \v 032 a
0040140 g e 1 3 a l t o \r * \t P F e
0040160 t c h 4 [ P C B , I B u f ,
0040200 4 ] , g o t o p [ R e f i l l
0040220 I B u f ] , a t [ 6 3 7 7 ]
0040240 ; * p a g e 1 4 a l t o \r \r
0040260 \t P F e t c h 4 [ P C B , I B
0040300 u f , 4 ] , g o t o p [ R e
0040320 f i l l I B u f ] , a t [ 6 7
0040340 7 7 ] ; * p a g e 1 5 \r l s
0040360 p N e x t I n s t P 1 5 : \t l u
0040400 _ N e x t I n s t [ I B u f
0040420 ] ; \r l n i x P 1 5 : \t N I R
0040440 E T ; \r \r \t P F e t c h 4 [ P C
0040460 B , I B u f , 4 ] , g o t
0040500 o p [ R e f i l l I B u f ] ,
0040520 a t [ 7 3 7 7 ] ; * p a g e 376
0040540 001 \0 307 b 1 6 \r l s p N e x t I
0040560 n s t P 1 6 : \t l u _ N e x
0040600 t I n s t [ I B u f ] ; \r l n i
0040620 x P 1 6 : \t N I R E T ; \r \r *
0040640 \t P F e t c h 4 [ P C B , I B
0040660 u f , 4 ] , g o t o p [ R e
0040700 f i l l I B u f ] , a t [ 7 7
0040720 7 7 ] ; * p a g e 1 7 -
0040740 c a n ' t \r \t o n p a g e [ 1 7
0040760 ] ; \r l s p N e x t I n s t P 1
0041000 7 : \t l o a d p a g e [ 7 ] ; \r
0041020 \t \t g o t o p [ l s p N e x t I
0041040 n s t P 7 ] ; \r \r \r \t O n P a g
0041060 e [ 0 ] ; \r \r R e f i l l I B u
0041100 f : \r \t P C B _ ( P C B )
0041120 + ( 4 c ) , a t [ 3 4 0 ] ;
0041140 \r \t P C 376 001 \0 9 z F _ R z e
0041160 r o , a t [ 3 4 1 ] ; \r \t n o
0041200 p , a t [ 3 4 2 ] ; \r \t r e t
0041220 u r n , a t [ 3 4 3 ] ; \t \t *
0041240 W a i t f o r p a g e f
0041260 a u l t \r \r o n p a g e [ p g J
0041300 u m p ] ; \r \r * I f t h e
0041320 P F E T C H 4 f a u l t s ,
0041340 t h e f a u l t h a n d l e
0041360 r w i l l s e t I B U F
0041400 t o - 1 s a n d \r * c o n
0041420 t i n u e a s i f n o t h
0041440 i n g h a p p e n e d . T
0041460 h e f a u l t h a p p e n s
0041500 a f t e r t h e 3 r d \r *
0041520 i n s t r u c t i o n p a s
0041540 t t h e p f e 376 001 \0 347 \v t c
0041560 h i s e x e c u t e d .
0041600 T h e f a u l t h a n d l e
0041620 r d e s t r o y s \r * t h e
0041640 r e t u r n l i n k . T
0041660 h e m i c r o i n s t r u c
0041700 t i o n b e i n g e x e c u
0041720 t e d m u s t b e o n \r *
0041740 p g J u m p f o r t h i s
0041760 s p e c i a l a c t i o n
0042000 t o o c c u r . \r \r R e t u r
0042020 n O p : \r \t r e t u r n , o p
0042040 c o d e [ 3 7 4 ] ; \t * U s e
0042060 d b y F a u l t f o r f
0042100 i r s t m i N e x t D a t a
0042120 c a s e \r \r P F o p : \r \t P F
0042140 E T C H 4 [ P C B , I B U 376 001
0042160 \0 037 177 F , 0 ] , o p c o d e
0042200 [ 3 7 7 ] ; \t * T h i s w i
0042220 l l p a g e f a u l t \r \t I
0042240 B U F _ I B U F , g o t o
0042260 [ n x i L B L ] ; \r \r \f \r * C
0042300 o m e h e r e w h e n I n
0042320 t P e n d i n g i n s t e a d
0042340 o f t o n e x t o p c o
0042360 d e \r \r \t o n p a g e [ o p P a
0042400 g e 0 ] ; \r \r T a k e I n t e r
0042420 r u p t : \r \t T _ ( S S t k
0042440 P & N S t k P ) x o r ( 3 7
0042460 7 c ) , s k i p ; \t * m a y
0042500 b e t h e s e c a n b e
0042520 t h e s a m e \r N w w O p : \t
0042540 T _ ( S S t k P & N S t k P
0042560 ) x 376 001 \0 366 N o r ( 3 7 7 c
0042600 ) , o p c o d e [ 0 0 0 ] ; \r
0042620 \t l s p L 1 _ I P [ R S I m
0042640 a g e ] c ; \t \t \t * R S 2 3 2
0042660 I m a g e R e g i s t e r \r
0042700 \t S t k p _ l s p L 1 , l
0042720 s p L 1 _ T , N o R e g I
0042740 L o c k O K ; \r \t T _ S t a
0042760 c k _ ( S t a c k ) a n d
0043000 n o t ( I n t P e n d i n g
0043020 B i t ) ; \r \t S t k p _ l s
0043040 p L 1 , R S 2 3 2 _ T ; \r
0043060 \r : I F [ W i n d F l g ] ; \r \t
0043100 l u _ ( N W W ) a n d n
0043120 o t ( B o t h K e y M a s k s
0043140 ) , g o t o [ N o I n t e r r
0043160 u p t , R < 0 376 001 \0 344 @ ] ; \r
0043200 \t \t \t \t * t e s t f o r i
0043220 n t e r r u p t s o t h e r
0043240 t h a n l i s p / b c p l k
0043260 e y \r \t N W W _ ( N W W )
0043300 a n d n o t ( B c p l K e y
0043320 M a s k ) , g o t o [ N W W P
0043340 u n t , a l u # 0 ] ; \r \t \t \t
0043360 \t * y e s , d o t h e m
0043400 b y p u n t i n g t o b c
0043420 p l \r \t A C 2 _ K b d F X P
0043440 , s k i p [ a l u # 0 ] ; \t *
0043460 S k i p i f n o i n t e
0043500 r r u p t s : s h o u l d n '
0043520 t h a p p e n ? \r \t g o t
0043540 o [ N o I n t e r r u p t ] ; \t
0043560 \t \t * s p u r i o u s \r 376 001 \0
0043600 340 X \t N W W _ 1 0 0 0 0 0 c
0043620 ; \t \t \t * t u r n o f f i
0043640 n t e r r u p t s b e f o r e
0043660 s w i t c h i n g \r \t l o a d
0043700 p a g e [ p g L i s p 0 ] ; \r \t
0043720 A C 3 _ 1 7 7 4 0 0 c , g
0043740 o t o p [ C h e c k F o r B a c
0043760 k u p ] ; \t * A C 3 < 0 s i
0044000 g n a l s c o n t e x t s w i
0044020 t c h \r \r N o I n t e r r u p t
0044040 : \r \t T _ ( P C X R e g )
0044060 - 1 ; \t * n e e d t o b
0044100 a c k u p t h e P C b e
0044120 f o r e r e s u m i n g \r \t l
0044140 s p L 1 _ T ; \r \t P C F _
0044160 l s p L 1 ; \t \t \t * w a i t
0044200 f 376 001 \0 215 R o r P C F t o
0044220 g e t w r i t t e n \r \t g o
0044240 t o [ n x i L B L ] ; \r \r : E L
0044260 S E ; \t \t \t \t * p r e - W i n
0044300 d , a l w a y s d o N w w
0044320 \r \t L o a d P a g e [ p g L i s
0044340 p 0 ] ; \r \t g o t o p [ l s p N
0044360 W W I n t ] ; \r : E N D I F ; \r
0044400 \r % \r : I F [ N o I n t e r r u
0044420 p t s ] ; \r \t T _ ( P C X R
0044440 e g ) ; \r \t l s p L 1 _ T ;
0044460 \r \t l s p L 1 _ ( l s p L 1
0044500 ) - ( 1 c ) ; \r \t n o p ; \r
0044520 \t P C F _ ( l s p L 1 ) ; \r
0044540 \t n o p ; \r \t l u _ N e x t
0044560 I n s t [ I B u f ] ; \r \t N I R
0044600 E T ; \r : E L 376 001 \0 214 S E ; \r
0044620 \t L o a d P a g e [ p g L i s p
0044640 0 ] ; \r \t g o t o p [ l s p N W
0044660 W I n t ] ; \r : E N D I F ; \r %
0044700 \r \f \r \r \t o n p a g e [ 4 ] ; \r
0044720 l s p R e t P 4 : r e t u r n
0044740 ; \r \r \t o n p a g e [ 5 ] ; \r l
0044760 s p R e t P 5 : r e t u r n ;
0045000 \r \r \t o n p a g e [ 6 ] ; \r l s
0045020 p R e t P 6 : r e t u r n ; \r
0045040 \r \t o n p a g e [ 1 0 ] ; \r l s
0045060 p R e t P 1 0 : r e t u r n ;
0045100 \r \r \t o n p a g e [ 1 1 ] ; \r l
0045120 s p R e t P 1 1 : r e t u r n
0045140 ; \r \r \t o n p a g e [ 1 5 ] ; \r
0045160 l s p R e t P 1 5 : r e t u r
0045200 n ; \r \r \t o n p a g e [ 376 001 \0 351
0045220 H 1 6 ] ; \r l s p R e t P 1 6 :
0045240 r e t u r n ; \r \r \t o n p a g
0045260 e [ 1 7 ] ; \r l s p R e t P 1 7
0045300 : r e t u r n ; \r \r \r \r \t o n
0045320 p a g e [ 5 ] ; \r l s p U f n x
0045340 P 5 : \r \t l o a d p a g e [ p g
0045360 U f n x ] ; \r \t g o t o p [ l s
0045400 p U f n x P 4 ] ; \r \r \t o n p a
0045420 g e [ 6 ] ; \r l s p U f n x P 6
0045440 : \r \t l o a d p a g e [ p g U f
0045460 n x ] ; \r \t g o t o p [ l s p U
0045500 f n x P 4 ] ; \r \r \t o n p a g e
0045520 [ 7 ] ; \r l s p U f n x P 7 : \r
0045540 \t l o a d p a g e [ p g U f n x
0045560 ] ; \r \t g o t o p [ l s p U f n
0045600 x P 4 ] ; \r \r \t o n p a g e [ 1
0045620 0 376 001 \0 d 322 ] ; \r l s p U f n x
0045640 P 1 0 : \r \t l o a d p a g e [ p
0045660 g U f n x ] ; \r \t g o t o p [ l
0045700 s p U f n x P 4 ] ; \r \r \t o n p
0045720 a g e [ 1 1 ] ; \r l s p U f n x
0045740 P 1 1 : \r \t l o a d p a g e [ p
0045760 g U f n x ] ; \r \t g o t o p [ l
0046000 s p U f n x P 4 ] ; \r \r \t o n p
0046020 a g e [ 1 2 ] ; \r l s p U f n x
0046040 P 1 2 : \r \t l o a d p a g e [ p
0046060 g U f n x ] ; \r \t g o t o p [ l
0046100 s p U f n x P 4 ] ; \r \r \t o n p
0046120 a g e [ 1 5 ] ; \r l s p U f n x
0046140 P 1 5 : \r \t l o a d p a g e [ p
0046160 g U f n x ] ; \r \t g o t o p [ l
0046200 s p U f n x P 4 ] ; \r \r \t o n p
0046220 a g e [ 1 6 376 \0 205 b 214 ] ; \r l s
0046240 p U f n x P 1 6 : \r \t l o a d p
0046260 a g e [ p g U f n x ] ; \r \t g o
0046300 t o p [ l s p U f n x P 4 ] ; \r
0046320 \r \t o n p a g e [ 1 7 ] ; \r l s
0046340 p U f n x P 1 7 : \r \t l o a d p
0046360 a g e [ p g U f n x ] ; \r \t g o
0046400 t o p [ l s p U f n x P 4 ] ; \r
0046420 \r \r \t : E N D [ F e t c h ] ; \r
0046440 377 \0 \0 F l o a t . 0 m c \0 373 231 302
0046460 215 P \0 \0 376 001 \0 264 = : I F [ W i t
0046500 h F l o a t i n g P o i n t ] ;
0046520 * * * * * * * * * * * * * * *
0046540 * * * * * * * * * * * * * * * *
0046560 * \r T I T L E [ F l o a t . 0 m
0046600 c ] ; \t * s i n g l e - p r e
0046620 c i s i o n f l o a t i n g
0046640 p o i n t \r \r S e t [ P a c k I
0046660 n L i n e , W i t h C r e a t
0046700 e C e l l ] ; \t * D o c r e
0046720 a t e c e l l i n l i n e \r \r
0046740 * A d a p t e d f r o m M
0046760 e s a F p . m c \r * L a s t
0047000 e d i t e d S e p t e m b e r
0047020 2 9 , 1 9 8 2 1 0 : 0 4
0047040 P M v a n M e l l e \r % \r
0047060 e d i t s b y 376 001 \0 215 ] F i
0047100 a l a \r O r i g i n a l v e r
0047120 s i o n b y J i m B o y c
0047140 e . \r \r F l o a t i n g p o i
0047160 n t n u m b e r s a r e r
0047200 e p r e s e n t e d i n t w
0047220 o d i f f e r e n t f o r m
0047240 a t s . A r g u m e n t s \r
0047260 o n t h e s t a c k a r e
0047300 I E E E s i n g l e p r e
0047320 c i s i o n r e a l s w i t
0047340 h t h e f o l l o w i n g
0047360 f o r m a t : \r \t b i t 0 \t s
0047400 i g n ( 1 m e a n s n e g
0047420 a t i v e ) \r \t 1 : 8 \t e x p o
0047440 n e n t b i a s e d b y 1
0047460 2 7 d \r \t \t ( e x p o n e n 376 001
0047500 \0 * 210 t o f 1 7 7 b w i t
0047520 h a f r a c t i o n o f
0047540 0 i s t h e i n t e g e r
0047560 1 ; \r \t \t e x p o n e n t
0047600 o f 0 w i t h a f r a c
0047620 t i o n o f 0 i s t r u
0047640 e 0 ; \r \t \t e x p o n e n t
0047660 o f 0 w i t h n o n - 0
0047700 f r a c t i o n i s d e n
0047720 o r m a l i z e d [ i . e . ,
0047740 t h e \r \t \t f r a c t i
0047760 o n d o e s n o t h a v e
0050000 a n i m p l i c i t " 1 .
0050020 " i n f r o n t o f i t
0050040 ] ; \r \t \t e x p o n e n t o
0050060 f 3 7 7 b w i t h a f r
0050100 a c t 376 001 \0 332 G i o n o f 0
0050120 i s i n f i n i t y ; \r \t \t
0050140 e x p o n e n t o f 3 7 7
0050160 b w i t h n o n - 0 f r a
0050200 c t i o n i s N o t - A - N
0050220 u m b e r ) \r \t 9 : 3 1 \t f r a
0050240 c t i o n \r \t \t ( i m p l i c i
0050260 t l y p r e c e d e d b y
0050300 ' 1 . ' i f n o n - 0 a n
0050320 d n o r m a l i z e d . ) \r \r
0050340 T h e s e n u m b e r s a p
0050360 p e a r o n t h e s t a c
0050400 k w i t h t h e w o r d
0050420 h o l d i n g b i t s 0 - 1
0050440 5 n e a r e r t o \r t h e
0050460 t o p o f s t a c k . M
0050500 o s t o p e r 376 001 \0 v V a t i
0050520 o n s u n p a c k t h e o
0050540 p e r a n d s i n t o a f
0050560 o r m a t t h a t i s \r e a
0050600 s i e r t o w o r k w i t
0050620 h . T h i s f o r m a t
0050640 u s e s t h r e e w o r d s
0050660 i n t e r p r e t e d a s
0050700 f o l l o w s : \r \t E x p S i g
0050720 n \t b i t s 1 : 8 a r e t
0050740 h e e x p o n e n t ( b i a
0050760 s e d b y 1 2 7 d ) , b i
0051000 t 1 5 d t h e s i g n . \r
0051020 \t \t N O T E : F A d d , F S
0051040 u b , F M p , F D i v , e
0051060 t c . m u s t a n d d o
0051100 c o m p e n s a t e f o 376 001 \0
0051120 [ 233 r \r \t \t t h e a d d i t i
0051140 o n o f 1 t o t h e e
0051160 x p o n e n t w h i c h o c
0051200 c u r s i n t h e R e n o
0051220 r m \r \t \t s u b r o u t i n e .
0051240 \r \t F r a c \t T h e f r a c t
0051260 i o n . W h e n u n p a c
0051300 k e d , t h e l e a d i n g
0051320 o n e a p p e a r s i n \r
0051340 \t \t F r a c [ 1 ] ; w h e n
0051360 a b o u t t o b e p a c k
0051400 e d a g a i n , t h e l e
0051420 a d i n g b i t i s i n \r
0051440 \t \t F r a c [ 0 ] , F r a c
0051460 [ 3 1 d ] i s a S t i c k
0051500 y B i t ( t h e i n c l u s
0051520 i v 376 001 \0 8 311 e o r o f a
0051540 l l \r \t \t r e m a i n i n g b
0051560 i t s ) ; F i x a n d R o
0051600 u n d h a n d l e r o u n d
0051620 i n g s l i g h t l y \r \t \t d
0051640 i f f e r e n t l y . \r \t F
0051660 r a c H \t 1 6 h i g h o r d
0051700 e r b i t s o f F r a c .
0051720 \r \t F r a c L \t 1 6 l o w o
0051740 r d e r b i t s o f F r a
0051760 c . \r \r T h r e e r e g i s t
0052000 e r s f o r e a c h o f
0052020 t h e t w o a r g u m e n t
0052040 s h o l d a f l o a t i n
0052060 g p o i n t n u m b e r i
0052100 n \r u n p a c k e d f o r m .
0052120 T h e s e 376 001 \0 k 375 r e g
0052140 i s t e r s h a v e n a m e
0052160 s w i t h 1 ' s o r 2 '
0052200 s i n t h e m . N u m b
0052220 e r s \r a r e o f t e n r e
0052240 f e r r e d t o b y i n d
0052260 e x ( S B o r D B ) .
0052300 A r g 1 h a s i n d e x 2
0052320 a n d A r g 2 h a s \r i n
0052340 d e x 3 . \r \r T h e I E E E
0052360 s p e c i f i c a t i o n c
0052400 a l l s f o r f o u r d i
0052420 f f e r e n t r o u n d i n g
0052440 m o d e s , t w o m e t h
0052460 o d s o f \r h a n d l i n g
0052500 u n d e r f l o w / d e n o r m
0052520 a l i z e d n u m b e 376 001 \0 7
0052540 345 r s ( w e h a v e a d d
0052560 e d a t h i r d ) , t w o
0052600 k i n d s \r o f i n f i n i
0052620 t y . W e a r e i n t
0052640 h e p r o c e s s o f c o
0052660 n v e r t i n g t o a R e
0052700 a l p a c k a g e t h a t \r
0052720 r e c o r d s a l l m o d e
0052740 s e t t i n g s i n t h e
0052760 f p S t i c k y r e g i s t
0053000 e r a c c e s s i b l e t o
0053020 m i c r o c o d e . \r W h e n
0053040 t h i s c o n v e r s i o n
0053060 i s c o m p l e t e , m i
0053100 c r o c o d e w i l l o p t
0053120 i o n a l l y i m p l e m e n
0053140 t 376 001 \0 233 T a s m u c h \r o
0053160 f t h e p a c k a g e a s
0053200 i t w a n t s t o , b u
0053220 t t r a p w h e n a n o
0053240 p c o d e c a n n o t b e
0053260 c o m p l e t e d i n \r m i c
0053300 r o c o d e . W e f a l l
0053320 s h o r t i n t h a t t
0053340 h e f p S t i c k y r e g i
0053360 s t e r i s n o t s a v e
0053400 d i n \r t h e M e s a p r
0053420 o c e s s s t a t e . I n
0053440 a l l o t h e r s i t u a
0053460 t i o n s , m i c r o c o d e
0053500 e i t h e r c o m p l e t e
0053520 s \r t h e o p e r a t i o n
0053540 o r t r a 376 001 \0 ; + p s t o
0053560 s o f t w a r e , a s i n
0053600 d i c a t e d b e l o w . \r \r
0053620 \r P O S S I B L E I M P R O V
0053640 E M E N T S : \r \r 1 ) G e t
0053660 t h e 1 s t l e v e l M i
0053700 s c d i s p a t c h e s a l
0053720 l o n o n e p a g e t o
0053740 s a v e 4 c y c l e s h
0053760 e r e . \r 2 ) P u t c a l l
0054000 t o R o u n d F r a c i n
0054020 F D i v e x i t s a v i n
0054040 g 6 c y c l e s . \r 3 ) F
0054060 a s t e r R e n o r m c a l
0054100 l e d f r o m F l o a t a
0054120 n d s u b t r a c t i o n . \r
0054140 4 ) E l i m i n a t 376 001 \0 233 267
0054160 e 3 c y c l e s i n z e
0054200 r o - a r g t e s t i n g f
0054220 o r a l l t w o - a r g o
0054240 p c o d e s . \r 5 ) U s e 3
0054260 1 b m a x s h i f t r a t
0054300 h e r t h a n 4 0 b f o r
0054320 U n n o r m e n t r y f r
0054340 o m F A d d / F S u b ; p o
0054360 s s i b l y \r d o t h e U n
0054400 n o r m e n t r y d i f f e
0054420 r e n t l y f o r n e g a t
0054440 i v e f p T e m p . \r 6 ) I
0054460 m p l e m e n t v a r i a n t
0054500 r o u n d i n g m o d e s ,
0054520 i n f i n i t i e s , g r a
0054540 d u a l d e n o r m a l i z a
0054560 376 001 \0 8 4 t i o n , \r i n f i n
0054600 i t y o n o v e r f l o w ,
0054620 n o t - a - n u m b e r o n
0054640 d i v i d e b y z e r o ,
0054660 m o d o n f i x / r o u n
0054700 d \r o v e r f l o w . \r 7 ) G
0054720 e t t h e f p S t i c k y
0054740 r e g i s t e r a n d ? s
0054760 o f t w a r e b i t s i n
0055000 t h e p r o c e s s s t a t
0055020 e . \r 8 ) S p e e d F S c
0055040 b y d i r e c t l y a d d i
0055060 n g s c a l i n g f a c t o
0055100 r t o e x p o n e n t f i
0055120 e l d . \r \f \r F P S T I C K Y
0055140 R E G I S T E R \r \r 0 \t 0 \t
0055160 O R 1 376 001 \0 364 257 i n t o f
0055200 p S t i c k y [ 1 5 d ] o n
0055220 e v e r y i n e x a c t r e
0055240 s u l t \r \t 1 \t T r a p o n
0055260 a n y i n e x a c t r e s u
0055300 l t \r 1 - 2 \t 0 \t T r a p o n
0055320 a n y d e n o r m a l i z e
0055340 d r e s u l t ( u s e r m
0055360 a y b e i n t e r e s t e d
0055400 i n \r \t \t t h e l o s s o
0055420 f p r e c i s i o n ) \r \t 1 \t
0055440 S u b s t i t u t e 0 o n
0055460 u n d e r f l o w ( n o n - I
0055500 E E E ; r e q u e s t e d b
0055520 y W i l h e l m ) \r \t 2 \t G r
0055540 a d u a l l y d e n o r m a l
0055560 i z e o n u n d 376 001 \0 372 004 e
0055600 r f l o w ( n o t i n m i
0055620 c r o c o d e ) \r \t 3 \t - - \r
0055640 3 \t 0 \t P r o j e c t i v e i
0055660 n f i n i t y ( o n l y o n
0055700 e u n s i g n e d i n f i n
0055720 i t y ; c o m p a r e o f \r
0055740 \t \t a n y t h i n g w i t h
0055760 i n f i n i t y t r a p s ;
0056000 n o t s u r e w h a t o t
0056020 h e r o p e r a t i o n s \r \t
0056040 \t a r e s u p p o s e d t o
0056060 d o ) . \r \t 1 \t A f f i n e
0056100 i n f i n i t y ( + i n f i
0056120 n i t y a n d - i n f i n
0056140 i t y b o t h d e f i n e d
0056160 ; \r \t \t a r i t h m e t i c 376
0056200 001 \0 z 360 a n d c o m p a r i s
0056220 o n s w o r k a s e x p e
0056240 c t e d ) . \r 4 - 5 \t 0 \t R o u
0056260 n d t o n e a r e s t ( u
0056300 n b i a s e d ; r o u n d t
0056320 o e v e n i f h a l f w a
0056340 y ) \r \t 1 \t R o u n d t o w a
0056360 r d 0 ( t r u n c a t e ) -
0056400 - n o t i n m i c r o c o d
0056420 e \r \t 2 \t R o u n d t o w a r
0056440 d p l u s i n f i n i t y -
0056460 - n o t i n m i c r o c o d
0056500 e \r \t 3 \t R o u n d t o w a r
0056520 d m i n u s i n f i n i t y
0056540 - - n o t i n m i c r o c o
0056560 d e \r 6 \t 0 \t T r a p i f
0056600 d e n 376 001 \0 272 005 o r m a l i z
0056620 e d a r g s a r e s u p p
0056640 l i e d \r \t 1 \t N o r m a l i z
0056660 e t h e a r g u m e n t s
0056700 a n d t h e n u s e t h e
0056720 m ( n o t i n m i c r o c
0056740 o d e ) \r 7 \t 0 \t T r a p
0056760 o n i n v a l i d o p e r a
0057000 t i o n s ( c o m p a r e o
0057020 f p r o j e c t i v e i n f
0057040 i n i t y , \r \t \t N o t - a - n
0057060 u m b e r a s a n a r g u
0057100 m e n t ) \r \t 1 \t R e s u l t
0057120 i s t h e i n f i n i t y
0057140 o r n o t - a - n u m b e r
0057160 ( n o t i n m i c r o c o d
0057200 e ) \r 8 \t 0 \t 376 001 \0 373 367 T r
0057220 a p o n o v e r f l o w o
0057240 f F i x o r R o u n d o
0057260 p e r a t i o n \r \t 1 \t R e t u
0057300 r n l o w - o r d e r 1 6 d
0057320 b i t s o f t h e r e s
0057340 u l t ( n o t i n m i c r
0057360 o c o d e ) \r 9 \t 0 \t T r a
0057400 p o n d i v i d e - b y - z
0057420 e r o \r \t 1 \t S t u f f i n
0057440 n o t - a - n u m b e r o n
0057460 d i v i d e - b y - z e r o a
0057500 n d c o n t i n u e \r \t \t ( n
0057520 o t i n m i c r o c o d e )
0057540 \r 1 0 d \t 0 \t T r a p o n
0057560 a r i t h m e t i c o v e r f
0057600 l o w \r \t 1 \t S t u f f i 376 001
0057620 \0 035 313 n i n f i n i t y o n
0057640 a r i t h m e t i c o v e r
0057660 f l o w a n d c o n t i n u
0057700 e \r \t \t ( n o t i n m i c r
0057720 o c o d e ) \r 1 1 - 1 4 d \t - -
0057740 \t u n d e f i n e d \r 1 5 d \t
0057760 0 \t A l l r e s u l t s h a
0060000 v e b e e n e x a c t \r \t 1
0060020 \t O n e o r m o r e i n e
0060040 x a c t r e s u l t s h a v
0060060 e o c c u r r e d ( i . e .
0060100 , r o u n d i n g h a s \r \t
0060120 \t t a k e n p l a c e ) . \r \r
0060140 S o f t a r e i s e x p e c
0060160 t e d t o e x e c u t e t
0060200 h e F S t i c k y o p c o d
0060220 e t 376 001 \0 235 N o e x c h a n
0060240 g e a n e w v a l u e o
0060260 n \r t h e s t a c k w i t h
0060300 t h e v a l u e c u r r e
0060320 n t l y i n S t i c k y ;
0060340 t h e n i t e x e c u t e s
0060360 f l o a t i n g p o i n t \r
0060400 o p c o d e s i n t h e n
0060420 e w m o d e s e t t i n g s
0060440 . T h e f p S t i c k y
0060460 r e g i s t e r s h o u l d
0060500 b e s a v e d w i t h \r t h
0060520 e M e s a p r o c e s s s
0060540 t a t e . A l s o , t h e
0060560 s o f t w a r e s t a t e
0060600 o f t h e f l o a t i n g
0060620 p o i n t \r p r 376 001 \0 0 332 o c e
0060640 s s o r i n c l u d e s o c
0060660 c u r r e n c e b i t s f o
0060700 r a l l t h e e v e n t s
0060720 w h i c h h a v e t r a p
0060740 s : \r \t I n e x a c t r e s u
0060760 l t o c c u r r e d ( t e m
0061000 p o r a r i l y k e p t i n
0061020 f p S t i c k y ) , \r \t D e n
0061040 o r m a l i z e d a r g u m e
0061060 n t s w e r e s u p p l i e
0061100 d ; \r \t I n v a l i d o p e r
0061120 a t i o n s o c c u r r e d ;
0061140 \r \t F i x / R o u n d o v e r
0061160 f l o w o c c u r r e d ; \r \t
0061200 D i v i d e b y z e r o o
0061220 c c u r r e d ; \r \t A r i 376 001 \0
0061240 ; 356 t h m e t i c o v e r f l
0061260 o w o c c u r r e d ; \r \t U n
0061300 d e r f l o w o c c u r r e d
0061320 . \r T h e m i c r o c o d e
0061340 n e e d n o t k e e p t h
0061360 e s e o c c u r r e n c e b
0061400 i t s b e c a u s e t h e
0061420 s o f t w a r e c a n \r o r i
0061440 g i n a l l y c a u s e t h
0061460 e e v e n t s t o t r a p
0061500 , r e m e m b e r t h e e
0061520 v e n t i n s t o r a g e ,
0061540 a n d \r t u r n o f f t h
0061560 e m i c r o c o d e t r a p
0061600 e n a b l e . \r * * W h a t
0061620 a b o u t k e e p i n g t h
0061640 e 376 001 \0 360 Q e v e n t s i n
0061660 t h e p r o c e s s s t a
0061700 t e ? \r \r I n t h e c u r r
0061720 e n t m i c r o c o d e i m
0061740 p l e m e n t a t i o n , a n
0061760 y a r g u m e n t w i t h
0062000 3 7 7 b o r 0 b \r e x p o n
0062020 e n t a n d a n y r e s u
0062040 l t w h i c h o v e r f l o
0062060 w s w i l l t r a p t o
0062100 s o f t w a r e . \r \r \r R O U N
0062120 D I N G M O D E S \r \r R o u n
0062140 d i n g o c c u r s a t S
0062160 B [ f p F r a c L ] b i t 7
0062200 f o r a r i t h m e t i c
0062220 o r b i t 1 5 d f o r F
0062240 i x a n d \r 376 001 \0 306 237 R o u n
0062260 d . T h e b i t f o l l
0062300 o w i n g t h e o n e r o
0062320 u n d e d i s t h e r o u
0062340 n d i n g b i t , a n d a
0062360 l l l o w e r \r b i t s a r
0062400 e s t i c k y b i t s .
0062420 I f s t i c k y b i t s a
0062440 r e a l l 0 , t h e r e
0062460 s u l t i s e x a c t , a
0062500 n d n o \r r o u n d i n g o
0062520 c c u r s . O t h e r w i s
0062540 e , i f t h e I n e x a c
0062560 t R e s u l t t r a p i s
0062600 e n a b l e d , t r a p . \r O
0062620 t h e r w i s e , r o u n d
0062640 i n t h e d i r e c 376 001 \0 205
0062660 j t i o n s p e c i f i e d
0062700 b y t h e r o u n d i n g
0062720 m o d e . \r \r " R o u n d t o
0062740 n e a r e s t " g o e s i
0062760 n t h e o b v i o u s d i
0063000 r e c t i o n w h e n t h e
0063020 s t i c k y b i t s a r e
0063040 \r . n e . 0 ; i f r o u n
0063060 d i n g b i t i s 1 a n
0063100 d s t i c k y b i t s . e
0063120 q . 0 , t h e n u m b e r
0063140 i s e x a c t l y \r h a l f
0063160 w a y b e t w e e n t w o
0063200 p o s s i b l e r e s u l t s
0063220 , s o b y c o n v e n t i
0063240 o n r o u n d t o t h e
0063260 n 376 001 \0 347 256 e a r e s t \r e v e
0063300 n n u m b e r . \r % \r \f \r * N
0063320 O T E t h a t f p E x p S i
0063340 g n , f p F r a c H , a n d
0063360 f p F r a c L a r e n o t
0063400 u s e d - - t h e s e a r e
0063420 d i s p l a c e d \r * b y S
0063440 B [ ] o r D B [ ] t o s
0063460 e l e c t t h e 1 / 2 r e
0063500 g i s t e r s . \r \r R V [ f p E
0063520 x p S i g n , 7 0 ] ; \t \t R V [
0063540 f p F r a c H , 1 4 ] ; \t R V [
0063560 f p F r a c L , 4 4 ] ; \r R V [
0063600 f p E x p S i g n 1 , 7 2 ] ; \t
0063620 R V [ f p F r a c 1 H , 1 6 ] ;
0063640 \t R V [ f p F r a c 1 L , 4 6 ]
0063660 ; \r R V [ f 376 001 \0 342 \t p E x p S
0063700 i g n 2 , 7 3 ] ; \t R V [ f p F
0063720 r a c 2 H , 1 7 ] ; \t R V [ f p
0063740 F r a c 2 L , 4 7 ] ; \r * \t l s
0063760 p L 2 , 3 \t \t u B u f 2 , 3
0064000 \t x B u f 2 , 3 \r \r * R V
0064020 [ f p S t i c k y , 7 5 ] ; \t \t
0064040 * S e e p a g e 1 c o m m
0064060 e n t - - N O T A T E M P O
0064100 R A R Y \r * R V [ f p C o d e ,
0064120 4 5 ] ; \t \t * F i x , R o u n
0064140 d ( x B u f 1 ) \r R V [ f p C
0064160 C T e m p , 4 4 ] ; \t \t * U n n
0064200 o r m \t ( x B u f ) \r R V [ f p
0064220 T e m p , 7 1 ] ; \t \t * U n n o
0064240 r m , F A d d , F S u b (
0064260 l s p L 1 ) \r R V [ f 376 001 \0 373 336
0064300 p C o u n t , 4 4 ] ; \t \t * F M
0064320 u l - - s a m e a s f p
0064340 C C T e m p \r R V [ f p F r a c
0064360 2 H L S h 1 , 7 0 ] ; \t * F M u
0064400 l ( l s p L 0 ) \r R V [ f p F
0064420 r a c 2 H L S h 1 p 1 , 4 5 ] ;
0064440 \t * F M u l - - s a m e a
0064460 s f p C o d e \r R V [ f p O n
0064500 e , 7 1 ] ; \t \t * F M u l - -
0064520 s a m e a s f p T e m p \r
0064540 R M [ f p F r a c 1 L L , I P [
0064560 f p F r a c 2 L ] ] ; \t * F M u
0064600 l \r R V [ f p T F r a c , 7 0 ]
0064620 ; \t \t * F D i v - - s a m e
0064640 a s f p F r a c 2 H L S h 1
0064660 \r R V [ f p F r a c 2 H ' , 4 4
0064700 376 001 \0 q { ] ; \t \t * F D i v -
0064720 - s a m e a s f p C C T e
0064740 m p \r R V [ f p F r a c 2 H ' p
0064760 1 , 7 1 ] ; \t * F D i v - -
0065000 s a m e a s f p T e m p \r R
0065020 V [ f p F r a c 2 H p 1 , 4 5 ]
0065040 ; \t * F D i v - - s a m e
0065060 a s f p C o d e \r * R M [ f p
0065100 R h i , I P [ f p F r a c 1 L ]
0065120 ] ; \t * F S q R t \r * R M [ f p
0065140 R l o , I P [ f p F r a c 1 H ]
0065160 ] ; \t * F S q R t \r \r * 5 4 5 b
0065200 m i i n c l u d i n g t w
0065220 o a l p h a - b y t e d i s
0065240 p a t c h l o c a t i o n s
0065260 o v e r w r i t t e n i n M
0065300 e s a X . 376 001 \0 223 S \r S e t [ f
0065320 p P a g e 0 , 1 1 ] ; \t * 3 5 4
0065340 b m i ( n o t p a g e s
0065360 4 t o 7 ) \r S e t [ f p P a
0065400 g e 1 , 1 1 ] ; \t * 3 6 b m
0065420 i \r S e t [ f p P a g e 2 , 1 1
0065440 ] ; \t * 4 0 b m i \r S e t [
0065460 f p P a g e 3 , 1 1 ] ; \t *
0065500 5 b m i \r S e t [ f p P a g e
0065520 4 , 1 1 ] ; \t * 1 2 b m i \r
0065540 S e t [ f p P a g e 5 , 1 1 ] ;
0065560 \t * 2 2 b m i \r S e t [ f p
0065600 P a g e 6 , 1 1 ] ; \t * 2 b
0065620 m i \r S e t [ f p P a g e 7 ,
0065640 1 1 ] ; \t * 2 3 b m i \r S e
0065660 t [ f p P a g e 8 , 1 1 ] ; \t *
0065700 3 b m i \r \r L 376 001 \0 I F o
0065720 c a [ U n n o r m D i s p , f p
0065740 P a g e 0 , 4 0 ] ; \r L o c a [
0065760 U n p a c k R e t , f p P a g e
0066000 0 , 6 0 ] ; \r L o c a [ R o u n
0066020 d D i s p , f p P a g e 0 , 1 0
0066040 0 ] ; \r L o c a [ F i x D i s p
0066060 , f p P a g e 0 , 1 2 0 ] ; \r \f
0066100 \r M @ [ F l o a t O p , O r [
0066120 A n d [ # 1 , 3 7 ] , L S h i
0066140 f t [ # 2 , 5 ] ] ] ; \t * F
0066160 l o a t O p [ o p c o d e , f
0066200 n ] \r * l s p U F N = < 3
0066220 b i t s o f d i s p a t c
0066240 h , , l o w 5 b i t s
0066260 o f o p c o d e > \r \r R V 2 [
0066300 R e s u l t 1 H i , R e s u 376
0066320 001 \0 235 d l t 1 L o , I P [ A C
0066340 0 ] ] ; \r \r @ F P l u s : \t l s
0066360 p U F N _ F l o a t O p [ 3
0066400 5 0 , 0 ] c , g o t o [ F U
0066420 n b o x ] , o p c o d e [ 3 5
0066440 0 ] ; \t \r @ F D i f f e r e n c
0066460 e : \r \t l s p U F N _ F l o
0066500 a t O p [ 3 5 1 , 1 ] c , g
0066520 o t o [ F U n b o x ] , o p c
0066540 o d e [ 3 5 1 ] ; \r @ F T i m e
0066560 s : \t l s p U F N _ F l o a
0066600 t O p [ 3 5 2 , 2 ] c , g o
0066620 t o [ F U n b o x ] , o p c o
0066640 d e [ 3 5 2 ] ; \r @ F Q u o t i
0066660 e n t : \r \t l s p U F N _ F
0066700 l o a t O p [ 3 5 3 , 3 ] c ,
0066720 g o t 376 001 \0 D 247 o [ F U n b o
0066740 x ] , o p c o d e [ 3 5 3 ] ;
0066760 \r @ F G r e a t e r p : \r * * *
0067000 * * \t l s p U F N _ 3 6 2 c
0067020 , g o t o [ l s p U f n x P 7
0067040 ] , o p c o d e [ 3 6 2 ] ; \t
0067060 * F G r e a t e r p \r \t l s p
0067100 U F N _ F l o a t O p [ 3 6
0067120 2 , 4 ] c , g o t o [ F U n
0067140 b o x ] , o p c o d e [ 3 6 2
0067160 ] ; \r \r * C o m m o n f l o
0067200 a t i n g u n b o x r o u t
0067220 i n e . T o s i m p l i f
0067240 y i n t e r f a c e t o M
0067260 e s a , w h i c h \r * e x p
0067300 e c t s T O S t o b e l
0067320 o 2 , h i 2 a 376 001 \0 F 1 n d
0067340 T O S - 1 t o b e l o 1
0067360 , h i 1 , w e u n b o x
0067400 t h e t o p \r * t w o e l
0067420 e m e n t s o f t h e s t
0067440 a c k i n t o 4 c o n t i
0067460 g u o u s r e g s , p o i n
0067500 t i n g s t k p a t t h e
0067520 \r * f r o n t e n d , a n
0067540 d s w a p p u s h a n d
0067560 p o p i n t h e m e s a
0067600 c o d e . T h u s w e w
0067620 i l l h a v e \r * q B u f
0067640 = h i 2 , l o 2 , h i 1 ,
0067660 l o 1 \r \r F U n b o x : \t l o
0067700 a d p a g e [ p g H S t a c k ]
0067720 , c a l l [ C h e c k E l 376 001
0067740 \0 363 \b t 2 P 7 ] ; \r \t T _ S
0067760 t a c k & - 1 , c a l l [ F U
0070000 n b o x S u b ] ; \r \t P F e t c
0070020 h 2 [ x B u f 2 , q B u f ,
0070040 0 ] ; \r \t T _ S t a c k & -
0070060 1 , c a l l [ F U n b o x S u
0070100 b ] ; \r \t P F e t c h 2 [ x B u
0070120 f 2 , q B u f 2 , 0 ] ; \r \t
0070140 l s p L N _ I P [ q B u f ]
0070160 c ; \r \t T _ ( S S t k P & N
0070200 S t k P ) x o r ( 3 7 7 c )
0070220 ; \t \t * T _ S t k P \r \t S
0070240 t k P _ l s p L N , l s p
0070260 L N _ T , N o R e g I L o
0070300 c k O K ; \t * P o i n t s t
0070320 k p a t q B u f \r \r * T
0070340 i s 376 001 \0 017 206 l o a d e d w
0070360 i t h 3 0 b , s t o r e d
0070400 i n S A L U F a s t h e
0070420 A + A + C y 0 A L U
0070440 o p e r a t i o n . \r \r \t f p F
0070460 r a c 2 H _ T _ 3 0 C ;
0070500 \r \t l o a d p a g e [ f p P a g
0070520 e 0 ] ; \r \t f p F r a c 2 H _
0070540 ( f p F r a c 2 H ) + ( S
0070560 A L U F _ T ) , G o T o P
0070600 [ U n p a c k 2 ] ; \r \r \r F U n
0070620 b o x S u b : \r \t x B u f 2 _
0070640 T ; \r \t T _ l s h [ S t a
0070660 c k & - 1 , 1 0 ] ; \r \t x B u
0070700 f 3 _ T ; \r \t T _ r s h
0070720 [ x B u f 2 , 1 1 ] ; \r \t T
0070740 _ ( r s h [ x 376 001 \0 260 } B u f
0070760 3 , 1 ] ) o r T ; \r \t P F
0071000 e t c h 1 [ M D S T y p e B a s
0071020 e B r , l s p T y p e ] ; \r \t
0071040 T _ ( F l o a t p T y p e )
0071060 ; \r \t l u _ ( r h m a s k [
0071100 l s p T y p e ] ) x o r T ;
0071120 \r \t s k i p [ a l u # 0 ] ; \r \t
0071140 r e t u r n ; \r F l o a t U
0071160 f n : \r \t l s p U F N _ ( l
0071200 s p U F N ) o r ( 3 4 0 c )
0071220 , g o t o [ u f n L B L ] ; \r
0071240 \r \f \r % U n p a c k 2 u n p a
0071260 c k s t h e f i r s t R e
0071300 a l o n t h e s t a c k
0071320 i n t o f p E x p S i g n 2 ,
0071340 f p F r a c 2 H , a n 376 001 \0
0071360 J 214 d \r f p F r a c 2 L a n d
0071400 t h e 2 n d i n t o f p
0071420 E x p S i g n 1 , f p F r a c
0071440 1 H , a n d f p F r a c 1 L
0071460 a n d r e t u r n s \r S B
0071500 p o i n t i n g a t a r g 1
0071520 a n d f p F r a c 1 H i n
0071540 T f o r F A d d , F S u
0071560 b , F M u l , a n d F D i
0071600 v . \r \r U n p a c k 1 u n p a
0071620 c k s o n e r e a l o n
0071640 t h e s t a c k i n t o f
0071660 p E x p S i g n 2 , f p F r a
0071700 c 2 H , a n d \r f p F r a c 2
0071720 L a n d r e t u r n s S B
0071740 a n d D B p o i n t i n g
0071760 a 376 001 \0 327 O t a r g 2 f o
0072000 r F i x a n d R o u n d .
0072020 \r \r U n p a c k a l s o f i
0072040 l t e r s o u t n u m b e r
0072060 s w h i c h t h e m i c r
0072100 o c o d e c a n ' t h a n d
0072120 l e , t r a p i n g o n \r u
0072140 n n o r m a l i z e d n u m b
0072160 e r s , I n f i n i t i e s ,
0072200 a n d N o t A N u m b e r s
0072220 . \r \r T i m i n g = 2 9 c
0072240 y c l e s f o r U n p a c k
0072260 1 , 4 6 f o r 2 a r g s
0072300 ( - 3 p e r a r g t h a
0072320 t i s 0 a n d \r + 1 p e
0072340 r a r g t h a t i s n e
0072360 g a t i v e ) 376 001 \0 < \r . \r % \r
0072400 O n P a g e [ f p P a g e 0 ] ;
0072420 \r \r * f p F r a c 2 H c o n t
0072440 a i n s 6 0 b h e r e , w
0072460 h e r e t h e t w o l e a
0072500 d i n g o n e s ( i . e . ,
0072520 b i t s 1 0 : 1 1 d ) \r * a
0072540 r e l o a d e d i n t o t
0072560 h e w o r d - a d d r e s s i
0072600 n g p a r t o f S B a n
0072620 d s e l e c t w o r d 3
0072640 o f a n \r * a d d r e s s e d
0072660 q u a d w o r d . \r \r U n p a
0072700 c k 2 : \r \t f p F r a c 2 H _
0072720 ( S B _ f p F r a c 2 H )
0072740 - 1 , T a s k ; \r \t T _
0072760 L d F [ S t a c k , 1 376 001 \0 347
0073000 304 1 , 7 ] ; \r * B B F B X c a
0073020 u s e s S B X _ S B ; t h e
0073040 S B _ h e r e t a k e s
0073060 e f f e c t w h e n B B F B
0073100 X i n t h e l a s t m i
0073120 o f \r * U n p a c k i s e
0073140 x e c u t e d . \r \t S B _ f
0073160 p F r a c 2 H , f p F r a c 2
0073200 H _ T , B B F B X , N o
0073220 R e g I L o c k O K , C a l l
0073240 [ U n p a c k 2 A ] ; \r \t f p F
0073260 r a c 2 H _ ( L S h [ f p F
0073300 r a c 2 H , 7 ] ) o r T ,
0073320 C a l l [ U n p a c k ] ; \r \t S
0073340 t k P _ l s p L N ; \t \t * *
0073360 * * R e s t o r e S t k p \r
0073400 \t 376 001 \0 212 370 D i s p a t c h [ l
0073420 s p U F N , 1 0 , 3 ] ; \r \t T
0073440 _ f p F r a c 1 H _ ( L S
0073460 h [ f p F r a c 1 H , 7 ] ) o
0073500 r T , D i s p [ @ F A d d ]
0073520 ; \r \r % n o t u s e d y e
0073540 t - - - - - - \r f p S e t S B
0073560 : \r \t S B _ f p F r a c 2 H
0073600 , R e t u r n ; \r \r U n p a c
0073620 k 1 : \r \t f p F r a c 2 H _
0073640 ( f p F r a c 2 H ) + ( S A
0073660 L U F _ T ) , C a l l [ f
0073700 p S e t S B ] ; \r \t D B _ f
0073720 p F r a c 2 H , B B F B X ,
0073740 C a l l [ U n p a c k ] ; \t * B
0073760 B F B X w i l l c a u s e
0074000 S B X _ S B 376 001 \0 # 334 \r \t D i s
0074020 p a t c h [ f p C o d e , 1 4 ,
0074040 4 ] ; \r \t T _ f p F r a c 2
0074060 H _ ( L S h [ f p F r a c 2
0074100 H , 7 ] ) o r T , D i s p
0074120 [ @ F i x ] ; \r - - - - - % \r
0074140 \r * P o s i t i o n e x p o n
0074160 e n t i n b i t s 1 : 8
0074200 a n d s i g n i n b i t
0074220 1 5 d b e c a u s e : \r * ( a
0074240 ) X O R ' i n g s i g n s
0074260 a n d a d d i n g o r s
0074300 u b t r a c t i n g e x p o n
0074320 e n t s i n F M u l a n d
0074340 F D i v c a n \r * b e a c
0074360 c o m p l i s h e d i n o n
0074400 e o p e r a t i o n 376 001 \0 263 245
0074420 ; \r * ( b ) C o n v e n i e n
0074440 t o v e r f l o w / u n d e r
0074460 f l o w t e s t i n s i g
0074500 n b i t o f w o r d ; a
0074520 n d \r * ( c ) C o n v e n i e
0074540 n t f o r p a c k i n g r
0074560 e s u l t . \r \r U n p a c k : \t
0074600 T _ L d F [ S t a c k , 1 1
0074620 , 7 ] ; \r \t S B [ f p F r a c H
0074640 ] _ T ; \r U n p a c k 2 A :
0074660 \r \t T _ ( L d F [ S t a c k
0074700 & + 1 , 1 , 1 7 ] ) a n d n
0074720 o t T , G o T o [ U n p N e
0074740 g , R < 0 ] ; \r \t S B [ f p E x
0074760 p S i g n ] _ T , D b l G
0075000 o T o [ U n p N Z , U n p Z ,
0075020 376 001 \0 [ 202 A L U # 0 ] ; \r U n
0075040 p N e g : \t S B [ f p E x p S i
0075060 g n ] _ ( Z e r o ) + T
0075100 + 1 , D b l G o T o [ U n
0075120 p N Z , U n p Z , A L U # 0
0075140 ] ; \r \r * Z e r o e x p o n e
0075160 n t m a y r e p r e s e n t
0075200 t r u e 0 o r d e n o r
0075220 m a l i z e d n u m b e r . \r
0075240 \r U n p Z : \t T _ S t a c k
0075260 & + 1 ; \r \t L U _ S B [ f p
0075300 F r a c H ] o r T ; \r \t S B
0075320 [ f p F r a c L ] _ T , B
0075340 B F B X , G o T o [ D e n o r
0075360 m T r a p , A L U # 0 ] ; \r C I
0075400 n e x a c t O K : \r \t R e t u r
0075420 n ; \r \r U 376 001 \0 w 4 n p N Z : \t
0075440 L U _ S B [ f p E x p S i g
0075460 n ] + ( 2 0 0 C ) ; \r \t S B
0075500 [ f p F r a c H ] _ S B [ f
0075520 p F r a c H ] o r ( 2 0 0 C
0075540 ) , G o T o [ N a N T r a p ,
0075560 A L U < 0 ] ; \r \t T _ L S h
0075600 [ S t a c k , 7 ] ; \r \t S B [ f
0075620 p F r a c L ] _ T , B B F
0075640 B X ; \r \t T _ R S h [ S t a
0075660 c k & + 1 , 1 1 ] , R e t u r
0075700 n ; \r \f \r % E n t r i e s a r
0075720 e P a c k A a n d R e n o
0075740 r m ; N o r m G o i s e n
0075760 t e r e d b y F A d d / F S
0076000 u b a n d F S c ; F l o a
0076020 t \r c o n t a i n s 376 001 \0 ; !
0076040 a c o p y o f t h e m i
0076060 a t R e n o r m . \r \r R e n
0076100 o r m l e f t - s h i f t s
0076120 t h e f r a c t i o n S B [
0076140 f p F r a c H / L ] u n t i l
0076160 S B [ f p F r a c H ] [ 0 ]
0076200 i s 1 a n d \r s u b t r a c
0076220 t s t h e n u m b e r o f
0076240 p o s i t i o n s s h i f t
0076260 e d f r o m t h e e x p o
0076300 n e n t . T h e n i t r
0076320 o u n d s \r S B [ f p F r a c H
0076340 ] , , S B [ f p F r a c L ] a
0076360 t S B [ f p F r a c L ] [ 7 ]
0076400 u s i n g S B [ f p F r a c
0076420 L ] [ 8 ] f o r r o u n d 376
0076440 001 \0 5 r i n g a n d \r S B [ f
0076460 p F r a c L ] [ 9 : 1 5 d ] a
0076500 s s t i c k y b i t s .
0076520 F i n a l l y , i t p e r f
0076540 o r m s r a n g e c h e c k
0076560 s , p u s h e s \r t h e n u
0076600 m b e r o n t o t h e s t
0076620 a c k , a n d e x i t s . \r
0076640 \r N O T E : I f a n o v e
0076660 r f l o w o c c u r s , t h
0076700 e p o s s i b l e r a n g e
0076720 o f e x p o n e n t s i s
0076740 \r 3 7 7 t o 3 7 6 + 3 7 6 -
0076760 2 0 0 o r 3 7 7 b t o 5
0077000 7 4 b ( F o r F M u l w i
0077020 t h 0 N o r m S t e p s ) .
0077040 \r F o r 376 001 \0 E 321 a n u n d
0077060 e r f l o w , t h e p o s s
0077100 i b l e r a n g e i s 0
0077120 o r 7 7 7 b d o w n t o
0077140 0 - 3 7 6 b + 1 7 7 b - 1 ; i
0077160 . e . , \r 0 o r 7 7 7 b d
0077200 o w n t o 6 0 0 b ( F o r
0077220 F D i v ) . \r \r T i m i n g
0077240 f r o m R e n o r m t o e
0077260 x i t : 8 x n s t e p s
0077300 + 3 0 + ( i f s t i c k
0077320 y b i t s . e q . 0 a f
0077340 t e r \r n o r m a l i z i n g :
0077360 1 i f o d d o r 3 i
0077400 f e v e n ) + ( 3 i f
0077420 f p F r a c L c a r r i e s
0077440 r o u n d i n g 376 001 \0 345 006 u p
0077460 \r ( + 5 i f f p F r a c H
0077500 a l s o c a r r i e s ) ) . \r
0077520 T h e n u m b e r o f n o
0077540 r m a l i z i n g s t e p s
0077560 w i l l b e : \r \t 0 f o r
0077600 F D i v o r F S q R t \r \t 1
0077620 f o r F S c ( s t a r t i
0077640 n g a t N o r m G o ) ; \r \t
0077660 0 o r 1 f o r F M u l ;
0077700 \r \t 0 o r 1 f o r F A d
0077720 d / F S u b i f s i g n s
0077740 a r e t h e s a m e ; \r \t 1
0077760 t o 2 4 d f o r F A d d
0100000 / F S u b i f s i g n s d
0100020 i f f e r ( s t a r t i n g
0100040 a t N o r m G o ) ; \r \t 0 376 001
0100060 \0 p 243 t o 1 5 d s t e p s
0100100 f o r F l o a t . \r % \r \r N
0100120 o r m S t e p : \t * O n l y R
0100140 e n o r m a n d c o p y o
0100160 f R e n o r m i n F l o a
0100200 t j u m p t o N o r m S t
0100220 e p . \r \t S B [ f p E x p S i g
0100240 n ] _ S B [ f p E x p S i g
0100260 n ] - ( 2 0 0 C ) ; \r L o n
0100300 g N o r m G o : \t * O d d p l
0100320 a c e m e n t ; p a i r e d
0100340 w i t h m i a t S u b N o
0100360 n N e g + 1 . \r N o r m G o : \t
0100400 S B [ f p F r a c L ] _ S B
0100420 [ f p F r a c L ] S A L U F O
0100440 P T , T a s k ; \r \t S B [ f
0100460 p F r 376 001 \0 333 267 a c H ] _ S
0100500 B [ f p F r a c H ] S A L U F
0100520 O P T , U s e C O u t A s C
0100540 I n ; \r * E v e n p l a c e m
0100560 e n t ; p a i r e d w i t h
0100600 m i a t M u l D o n e + 2
0100620 . \r R e n o r m : \t T _ L S
0100640 h [ S B [ f p F r a c H ] , 1 0
0100660 ] , G o T o [ N o r m S t e p
0100700 , R > = 0 ] ; \r % - - - - - \r P
0100720 a c k : \t D i s p a t c h [ f p
0100740 S t i c k y , 4 , 2 ] ; \t * D i
0100760 s p a t c h o n r o u n d i
0101000 n g m o d e \r \t L U _ S B
0101020 [ f p F r a c L ] a n d ( 1
0101040 7 7 C ) , D i s p [ . + 1 ] ;
0101060 \r * R o u n d 376 001 \0 ) 337 t o
0101100 n e a r e s t : T e s t s
0101120 t i c k y b i t s ; b e g i
0101140 n a s s u m i n g s t i c k
0101160 y b i t s . n e . 0 \r \t S
0101200 B [ f p F r a c L ] _ S B [
0101220 f p F r a c L ] + ( 2 0 0 C
0101240 ) , D b l G o T o [ R n d E x
0101260 , R n d N r , A L U = 0 ] , D
0101300 i s p T a b l e [ 4 ] ; \r \t T
0101320 _ S S t k P , G o T o [ F l
0101340 o a t T r p 1 ] ; \t * T r u n c
0101360 a t e ( i . e . , r o u n d
0101400 t o w a r d 0 ) \r \t T _
0101420 S S t k P , G o T o [ F l o a
0101440 t T r p 1 ] ; \t * R o u n d t
0101460 o w a r d p l u s i n 376 001 \0
0101500 H 321 f i n i t y \r \t T _ S S
0101520 t k P , G o T o [ F l o a t T
0101540 r p 1 ] ; \t * R o u n d t o w
0101560 a r d m i n u s i n f i n i
0101600 t y \r - - - - - % \r P a c k : \t
0101620 L U _ S B [ f p F r a c L ]
0101640 a n d ( 1 7 7 C ) ; \r * R o
0101660 u n d t o n e a r e s t :
0101700 T e s t s t i c k y b i t
0101720 s ; b e g i n a s s u m i n
0101740 g s t i c k y b i t s . n
0101760 e . 0 \r \t S B [ f p F r a c L
0102000 ] _ S B [ f p F r a c L ]
0102020 + ( 2 0 0 C ) , D b l G o T
0102040 o [ R n d E x , R n d N r , A L
0102060 U = 0 ] ; \r \r \t \t * A s s u m
0102100 p t 376 001 \0 _ 325 i o n c o r r e
0102120 c t - - c o n t i n u e r o u
0102140 n d i n g . \r R n d N r : \t S B
0102160 [ f p F r a c H ] _ S B [ f
0102200 p F r a c H ] + 1 , U s e
0102220 C O u t A s C I n , D b l G o
0102240 T o [ R n d U p , I n e x a c t
0102260 , C a r r y ] ; \r \t \t * A s s u
0102300 m p t i o n w r o n g - - a l
0102320 l s t i c k y b i t s a r
0102340 e 0 - - f i x u p r e s u l
0102360 t . \r R n d E x : \t D i s p a t
0102400 c h [ S B [ f p F r a c L ] , 7
0102420 , 3 ] , S k i p [ C a r r y '
0102440 ] ; \r * I f c a r r y o c c
0102460 u r r e d , t h e n t h e
0102500 n u m b e r 376 001 \0 232 263 w a s
0102520 e x a c t l y h a l f w a y
0102540 b e t w e e n a n o d d \r *
0102560 n u m b e r a n d t h e n
0102600 e x t h i g h e r e v e n
0102620 n u m b e r , a n d i t i
0102640 s n o w c o r r e c t l y
0102660 r o u n d e d . \r \t S B [ f
0102700 p F r a c H ] _ S B [ f p F
0102720 r a c H ] + 1 , G o T o [
0102740 R n d U p ] ; \r \t D i s p [ . +
0102760 1 ] ; \r I n e x a c t : \t \t *
0103000 [ 0 ] W a s h a l f w a y
0103020 a n d o d d - - n o w f i x
0103040 e d u p . \r * \t f p S t i c k
0103060 y _ ( f p S t i c k y ) o
0103100 r ( 1 C ) , D b l G 376 001 \0 !
0103120 \a o T o [ I n e x a c t T r a p
0103140 , I n e x a c t N o T r a p , R
0103160 < 0 ] , A t [ R o u n d D i s
0103200 p , 0 ] ; \r \t g o t o [ I n e x
0103220 a c t N o T r a p ] , A t [ R
0103240 o u n d D i s p , 0 ] ; \r \t \t *
0103260 [ 2 ] W a s e x a c t a
0103300 n d e v e n - - a d d i n g
0103320 2 0 0 b d i d n ' t a f f e
0103340 c t i t . \r \t L U _ S B [
0103360 f p E x p S i g n ] + ( 4 0
0103400 0 C ) , D b l G o T o [ O v e
0103420 r U n d e r f l o w , P a c k 2
0103440 , R < 0 ] , A t [ R o u n d D
0103460 i s p , 2 ] ; \r \t \t * [ 4 ]
0103500 W a s h a l f w a y b e t e
0103520 e 376 001 \0 0 327 n e v e n & n
0103540 e x t h i g h e r o d d - -
0103560 u n d o + 2 0 0 b . \r \t S B [
0103600 f p F r a c L ] _ S B [ f p
0103620 F r a c L ] - ( 2 0 0 C ) ,
0103640 G o T o [ I n e x a c t ] ,
0103660 A t [ R o u n d D i s p , 4 ] ;
0103700 \r \r R n d U p : \t T _ L S h
0103720 [ S B [ f p F r a c H ] , 1 0 ]
0103740 , G o T o [ . + 3 , C a r r y
0103760 ' ] ; \r * A d d i n g 4 0 0 b
0104000 t o S B [ f p E x p S i g n
0104020 ] h e r e w h i l e l e a
0104040 v i n g S B [ f p F r a c H ]
0104060 . e q . 0 w o r k s \r * e
0104100 x c e p t w h e n e x p o n
0104120 e n t i s 376 001 \0 344 8 3 7 6 b
0104140 - - f a l s e o v e r f l o w
0104160 g e t s g e n e r a t e d .
0104200 \r \t S B [ f p E x p S i g n
0104220 ] _ S B [ f p E x p S i g n
0104240 ] + ( 2 0 0 C ) ; \r \t S
0104260 B [ f p F r a c H ] _ 1 0 0
0104300 0 0 0 C ; \r * * * * \t f p S t i
0104320 c k y _ ( f p S t i c k y )
0104340 o r ( 1 C ) , G o T o [ I
0104360 n e x a c t T r a p , R < 0 ] ;
0104400 \r I n e x a c t N o T r a p : \t
0104420 * [ 6 ] W a s e x a c t
0104440 a n d o d d . \r \t L U _ S
0104460 B [ f p E x p S i g n ] + (
0104500 4 0 0 C ) , D b l G o T o [ O
0104520 v e r U n d e r f l o 376 001 \0 373 Y
0104540 w , P a c k 2 , R < 0 ] , A t
0104560 [ R o u n d D i s p , 6 ] ; \r \r
0104600 P a c k 2 : \t T _ ( R S h [
0104620 S B [ f p F r a c L ] , 1 0 ] )
0104640 o r T , G o T o [ O v e r
0104660 f l o w , A L U < 0 ] ; \r : I F
0104700 [ P a c k I n L i n e ] ; \r \t R
0104720 e s u l t 1 L o _ T ; \r \t T
0104740 _ S B [ f p E x p S i g n ]
0104760 a n d n o t ( 1 7 7 C ) ,
0105000 T a s k ; \r * S i m u l t a n
0105020 e o u s l y o f f s e t t h
0105040 e e x p o n e n t b y 1
0105060 w h i l e O R ' i n g i n
0105100 t h e f r a c t i o n . \r \t T
0105120 _ ( L d F [ S B [ f p F r a
0105140 376 001 \0 " 035 c H ] , 0 , 1 0 ] )
0105160 + T ; \r \t T _ ( L S h [ S
0105200 B [ f p E x p S i g n ] , 1 7 ]
0105220 ) o r T ; \r P a c k A : \t S
0105240 t a c k & + 2 ; \t \t \t * S e t
0105260 s t a c k c o r r e c t l y
0105300 \r \t R e s u l t 1 H i _ T ,
0105320 l o a d p a g e [ o p P a g e
0105340 0 ] ; \t * C r e a t e a n
0105360 e w F l o a t p c e l l \r \t
0105400 q B u f _ l s h i f t [ F l
0105420 o a t p T y p e ! , 4 ] c ,
0105440 c a l l p [ D o C r e a t e C e
0105460 l l ] ; \r \t P S t o r e 2 [ l s
0105500 p G e n B r , R e s u l t 1 H
0105520 i , 0 ] ; \t * C a n ' t f
0105540 a u l t 376 001 \0 N G n o w \r \t l
0105560 o a d p a g e [ p g R p l P t r
0105600 ] ; \r \t S t k S t a t e _ r
0105620 s h [ S t k S t a t e , 1 ] ,
0105640 g o t o p [ G c E x i t ] ; \r
0105660 \r : E L S E ; \r \t S t a c k & +
0105700 1 _ ( s m a l l p l ) ; \t *
0105720 S t a r t p u s h i n g t
0105740 w o s m a l l p s a s r e
0105760 s u l t \r \t S t a c k & + 3 _
0106000 T ; \t \t \t * P u s h l o w -
0106020 o r d e r r e s u l t w o r
0106040 d \r \t T _ S B [ f p E x p S
0106060 i g n ] a n d n o t ( 1 7
0106100 7 C ) , T a s k ; \r * S i m u
0106120 l t a n e o u s l y o f f s e
0106140 t t h e e x p o 376 001 \0 372 314 n
0106160 e n t b y 1 w h i l e O
0106200 R ' i n g i n t h e f r a
0106220 c t i o n . \r \t T _ ( L d F
0106240 [ S B [ f p F r a c H ] , 0 , 1
0106260 0 ] ) + T ; \r * P u s h h
0106300 i g h - o r d e r r e s u l t
0106320 & e x i t \r * * P a c k A :
0106340 \t T _ ( L S h [ S B [ f p E
0106360 x p S i g n ] , 1 7 ] ) o r
0106400 T ; \r \t T _ ( L S h [ S B [
0106420 f p E x p S i g n ] , 1 7 ] )
0106440 o r T ; \r P a c k A : \t S t a
0106460 c k & - 2 _ T ; \t \t * h i
0106500 - o r d e r r e s u l t w o
0106520 r d \r \t S t a c k & + 1 _ (
0106540 s m a l l p l ) ; \t * F i n 376
0106560 001 \0 357 B i s h s m a l l b o
0106600 x i n g \r \t l s p D e f x 1 _
0106620 L o A [ M a k e F l o a t N u
0106640 m b e r ! ] ; \r \t l s p N a r g
0106660 s _ 2 c ; \r \t S t a c k & +
0106700 1 , l o a d p a g e [ p g F r
0106720 a m e ] ; \r \t l s p D e f x 1
0106740 _ ( l s p D e f x 1 ) o r
0106760 ( H i A [ M a k e F l o a t N u
0107000 m b e r ! ] ) , g o t o p [ l
0107020 s p C a l l F n 0 ] ; \r : E N D
0107040 I F ; \r \f \r % I m p r o v e m e
0107060 n t f o r F l o a t a n d
0107100 F A d d / F S u b w i t h
0107120 d i f f e r e n t s i g n s .
0107140 \r T i m i n g : 1 2 / t r i s
0107160 t e p 376 001 \0 311 E + ( 5 , 1
0107200 0 , o r 1 4 f o r t h e
0107220 e x i t 0 , 1 , o r 2
0107240 s t e p c a s e s ) . \r T h
0107260 i s i s 2 s l o w e r f
0107300 o r 0 s t e p s , 1 f a
0107320 s t e r f o r 1 s t e p ,
0107340 a n d 5 f a s t e r f o
0107360 r 2 s t e p s ; \r m u c h
0107400 f a s t e r f o r l o n g e
0107420 r n o r m a l i z a t i o n s
0107440 . R e n o r m g o e s 1
0107460 f a s t e r i f a l l p
0107500 l a c e s \r w h i c h m i g h
0107520 t u s e m o r e t h a n
0107540 1 N o r m S t e p j u m p
0107560 t o L o n g N o 376 001 \0 241 214 r m
0107600 . \r \r L o n g N o r m : \r \t D i
0107620 s p a t c h [ S B [ f p F r a c
0107640 H ] , 1 , 2 ] , G o T o [ P a
0107660 c k L , R < 0 ] ; \r \t S B [ f p
0107700 E x p S i g n ] _ S B [ f p
0107720 E x p S i g n ] - ( 2 0 0 C
0107740 ) , D i s p [ . + 1 ] ; \r N o
0107760 r m 3 : \t T _ R S h [ S B [
0110000 f p F r a c L ] , 1 5 ] , A t
0110020 [ x , 0 ] ; \r \t S B [ f p F r a
0110040 c L ] _ L S h [ S B [ f p F
0110060 r a c L ] , 3 ] , T a s k ; \r
0110100 \t S B [ f p F r a c H ] _ (
0110120 L S h [ S B [ f p F r a c H ] ,
0110140 3 ] ) o r T ; \r \t S B [ f p
0110160 E x p S i g n ] _ S B [ 376 001
0110200 \0 D K f p E x p S i g n ] -
0110220 ( 4 0 0 C ) , G o T o [ L o n
0110240 g N o r m ] ; \r N o r m 2 : \t T
0110260 _ R S h [ S B [ f p F r a c
0110300 L ] , 1 6 ] , A t [ x , 1 ] ;
0110320 \r \t S B [ f p F r a c L ] _
0110340 L S h [ S B [ f p F r a c L ] ,
0110360 2 ] ; \r \t S B [ f p F r a c H ]
0110400 _ ( L S h [ S B [ f p F r a
0110420 c H ] , 2 ] ) o r T ; \r \t S
0110440 B [ f p E x p S i g n ] _ S
0110460 B [ f p E x p S i g n ] - (
0110500 2 0 0 C ) , G o T o [ P a c k
0110520 L ] ; \r N o r m G o : \t S B [ f
0110540 p F r a c L ] _ S B [ f p F
0110560 r a c L ] S A L U F O P T ,
0110600 S k 376 001 \0 322 4 i p , A t [ x
0110620 , 2 ] ; \r \t S B [ f p F r a c L
0110640 ] _ S B [ f p F r a c L ]
0110660 S A L U F O P T , A t [ x ,
0110700 3 ] ; \r P a c k L : \t T _ L
0110720 S h [ S B [ f p F r a c H ] , 1
0110740 0 ] , G o T o [ P a c k ] ; \r
0110760 \r N o r m S t e p : \r \t S B [ f
0111000 p E x p S i g n ] _ S B [ f
0111020 p E x p S i g n ] - ( 2 0 0
0111040 C ) , G o T o [ N o r m G o ]
0111060 ; \r % \r \r \r % N e g F r a c p
0111100 e r f o r m s a 2 ' s c o
0111120 m p l e m e n t n e g a t i o
0111140 n o n S B [ f p F r a c H ]
0111160 , , S B [ f p F r a c L ] a n
0111200 d \r r e t u r n 376 001 \0 274 s t
0111220 h e n e w S B [ f p F r a c
0111240 L ] i n T . \r \r T i m i n g
0111260 : 6 c y c l e s i f S B
0111300 [ f p F r a c L ] i s 0 ,
0111320 e l s e 7 c y c l e s . \r %
0111340 \r N e g F r a c : \r \t T _ S
0111360 B [ f p F r a c L ] ; \r N e g F
0111400 r a c 1 : \r \t S B [ f p F r a c
0111420 H ] _ S B [ f p F r a c H ]
0111440 x n o r ( 0 C ) , S k i p
0111460 [ A L U = 0 ] ; \r \t T _
0111500 S B [ f p F r a c L ] _ ( Z
0111520 e r o ) - T , R e t u r n
0111540 ; \r \t S B [ f p F r a c H ] _
0111560 S B [ f p F r a c H ] + 1
0111600 , R e t u r n ; \r \r \r % 376 001 \0
0111620 > w R o u n d C a r d r o u n
0111640 d s S B [ f p F r a c H ] , ,
0111660 T u s i n g M N B R [ 0 ]
0111700 a s r o u n d i n g b i t
0111720 a n d \r M N B R [ 1 : 1 7 b ]
0111740 a s s t i c k y b i t s ;
0111760 T i s u n c h a n g e d i
0112000 f n o r o u n d i n g o c
0112020 c u r s , o r c o n t a i n
0112040 s \r t h e n e w S B [ f p F
0112060 r a c L ] i f r o u n d i n
0112100 g o c c u r s . \r \r T i m i n
0112120 g : 4 i f e x a c t , 1
0112140 2 i f s t i c k y b i t s
0112160 . n e . 0 , 1 3 i f s
0112200 t i c k y b i t s . e q .
0112220 0 . 376 001 \0 ` 377 \r % \r \r : I F [ 0
0112240 ] ; * * * * * * * * * * \r R o
0112260 u n d C a r d : \r \t L U _ (
0112300 M N B R ) S A L U F O P T ,
0112320 S k i p [ A L U # 0 ] ; \r \t
0112340 R e t u r n ; \t * E x a c t \r
0112360 * R o u n d u p i f h a l
0112400 f w a y a n d s t i c k y
0112420 b i t s n o n - 0 . \r \t T _
0112440 ( R Z e r o ) + T , U s
0112460 e C O u t A s C I n , S k i p
0112500 [ A L U = 0 ] ; \r \t S B [ f
0112520 p F r a c H ] _ S B [ f p F
0112540 r a c H ] + 1 , U s e C O
0112560 u t A s C I n , G o T o [ C I
0112600 n e x a c t ] ; \r * S t i c k y
0112620 b i t s a 376 001 \0 / 277 l l 0
0112640 , r o u n d i n g b i t 1
0112660 : r o u n d u p i f o d
0112700 d , d o w n i f e v e n ,
0112720 b u t j u s t \r * a d d e d
0112740 1 , s o r e s u l t i s
0112760 c o r r e c t i f S B [ f
0113000 p F r a c L ] n o w e v e n
0113020 , e l s e 1 t o o b i g
0113040 . \r \t S B [ f p F r a c H ] _
0113060 S B [ f p F r a c H ] + 1
0113100 , U s e C O u t A s C I n ; \r
0113120 \t T _ ( F o r m - 2 [ A l l
0113140 O n e s ] ) a n d T ; \r C I
0113160 n e x a c t : \r \t g o t o [ C I
0113200 n e x a c t O K ] ; \r * * * * *
0113220 \t f p S t i c k y _ 376 001 \0 310
0113240 234 ( f p S t i c k y ) o r (
0113260 1 C ) , D b l G o T o [ I n e
0113300 x a c t T r a p A , C I n e x a
0113320 c t O K , R < 0 ] ; \r : E N D I
0113340 F ; * * * * * * * * * \r \f \r %
0113360 U n n o r m r i g h t - s h i
0113400 f t s t h e f r a c t i o n
0113420 D B [ f p F r a c H / L ] b
0113440 y f p T e m p [ 1 : 8 ] p o
0113460 s i t i o n s w i t h \r u n d
0113500 e r f l o w g o i n g i n t
0113520 o M N B R . M N B R [ 1 :
0113540 1 5 ] a r e s t i c k y b
0113560 i t s . \r \r U n n o r m i s
0113600 c a l l e d o n F A d d ,
0113620 F S u b , F i x , F i x I ,
0113640 376 001 \0 300 347 F i x C , R o u n
0113660 d , R o u n d I , a n d R
0113700 o u n d C . \r O n F A d d a
0113720 n d F S u b , i t r i g h
0113740 t - s h i f t s t h e f r a
0113760 c t i o n o f t h e n u m
0114000 b e r w i t h t h e s m a
0114020 l l e r \r e x p o n e n t b y
0114040 a n a m o u n t e q u a l
0114060 t o t h e d i f f e r e n
0114100 c e i n t h e e x p o n e
0114120 n t s , s o t h a t t h e
0114140 \r f r a c t i o n s c a n b
0114160 e a d d e d . O n F i x
0114200 o r R o u n d , i t s h
0114220 i f t s t h e f r a c t i o
0114240 n s o t 376 001 \0 357 020 h a t i
0114260 t s \r e x p o n e n t c a n
0114300 b e m a d e 2 3 5 b , w h
0114320 i c h p o s i t i o n s t h
0114340 e d e c i m a l p o i n t
0114360 t o t h e r i g h t \r o f
0114400 f p F r a c L b i t 1 5 d .
0114420 \r \r U s e o f M N B R t o
0114440 c a p t u r e u n d e r f l
0114460 o w a n d t h e 3 7 b m
0114500 a x i m u m s h i f t i s
0114520 n e e d e d f o r \r F i x / R
0114540 o u n d , w h i c h u s e
0114560 M N B R [ 0 ] f o r r o u n
0114600 d i n g a n d M N B R [ 1 :
0114620 1 5 d ] a s s t i c k y b
0114640 i t s . \r F A d d / F 376 001 \0 006 F
0114660 S u b w o r s t c a s e i
0114700 s w h e n s i g n s d i f
0114720 f e r a n d s u b t r a c t
0114740 i o n o f f r a c t i o n s
0114760 \r n e c e s s i t a t e s t w
0115000 o n o r m a l i z a t i o n
0115020 s t e p s a f t e r w a r d s
0115040 ; i n t h i s c a s e D
0115060 B [ f p F r a c L ] b i t \r 1
0115100 0 d w i l l b e c o m e t
0115120 h e r o u n d i n g b i t ,
0115140 s o a m a x i m u m s h
0115160 i f t o f 3 1 b s u f f i
0115200 c e s , M N B R i s \r n o t
0115220 n e e d e d , a n d u n d
0115240 e r f l o w i n g b i t s c
0115260 376 001 \0 035 ? a n r e s u l t i
0115300 n O R ' i n g i n t o a n
0115320 y o f D B [ f p F r a c L ]
0115340 \r b i t s 1 1 d t o 1 5 d
0115360 . \r \r T i m i n g : 8 c y c
0115400 l e s i f s h i f t c o u
0115420 n t . g e . 4 0 b ( i . e
0115440 . , t h e l e a d i n g f
0115460 r a c t i o n b i t i n \r D
0115500 B [ f p F r a c H ] b i t 1
0115520 i s s h i f t e d f u r t
0115540 h e r t h a n b i t 0 o
0115560 f M N B R ) ; 1 4 i f c
0115600 o u n t i s 0 ; \r 2 5 i f
0115620 c o u n t i s 1 t o 1
0115640 7 b ; 1 6 i f c o u n t
0115660 i s 2 0 376 001 \0 N C b ; o r
0115700 2 7 i f c o u n t i s 2
0115720 1 b t o 3 7 b . \r % \r \r U n
0115740 n o r m : \t L U _ ( f p T e
0115760 m p ) - ( 1 0 0 0 0 C ) ; \r
0116000 \t T _ ( L d F [ f p T e m p
0116020 , 5 , 4 ] ) - 1 , G o T o
0116040 [ . + 3 , A L U < 0 ] ; \r * M o
0116060 r e t h a n t w o w o r d
0116100 s - - a n y v a l u e . l s
0116120 . 4 0 0 0 0 b o k h e r e
0116140 \r \t M N B R _ R 4 0 0 ,
0116160 B B F B X ; \r \t T _ D
0116200 B [ f p F r a c H ] _ 0 C ,
0116220 R e t u r n ; \r \t f p C C T e
0116240 m p _ T , B B F B X , G
0116260 o T o [ U n n o r m 376 001 \0 374 324 0
0116300 , A L U < 0 ] ; \r \t C y c l e C
0116320 o n t r o l _ f p C C T e m
0116340 p ; \r * C y c l e C o n t r o l
0116360 _ R S C o u n t - 1 ,
0116400 s o M W X _ R S C o u n t
0116420 - 1 a n d D B X _ 0
0116440 . F o r W F A , t h i s
0116460 \r * w i l l l e f t - c y c l
0116500 e b y 1 7 b - D B X -
0116520 M W X ( = 2 0 b - R S
0116540 C o u n t ) a n d m a s k
0116560 w i t h 1 ' s i n \r * b i t
0116600 s D B X t o M W X ( =
0116620 0 . . ( R S C o u n t - 1 )
0116640 ) . \r \t f p C C T e m p _ 1
0116660 6 C ; \r \t D i s p a t c h [ f 376
0116700 001 \0 v E p T e m p , 4 , 1 ] ; \r
0116720 \t f p C C T e m p _ ( f p C
0116740 C T e m p ) - T , L o a d
0116760 P a g e [ f p P a g e 3 ] , D
0117000 i s p [ . + 1 ] ; \r \r \t M N B R
0117020 _ W F A [ D B [ f p F r a c
0117040 L ] ] , G o T o P [ . + 1 ] ,
0117060 A t [ U n n o r m D i s p , 0
0117100 ] ; \t * 1 t o 1 7 b \r O n P
0117120 a g e [ f p P a g e 3 ] ; \r \t T
0117140 _ W F A [ D B [ f p F r a c
0117160 H ] ] ; \r * C y c l e C o n t r
0117200 o l _ 1 6 b - ( R S C o
0117220 u n t m o d 2 0 b - 1 )
0117240 , k n o w i n g R S C o u n
0117260 t i s n o n - z e r o , o
0117300 r \r * D 376 001 \0 223 C B X _ 0
0117320 a n d M W X _ 1 7 b -
0117340 ( R S C o u n t m o d 2 0 b
0117360 ) . F o r R F , t h i s
0117400 l e f t - c y c l e s b y \r
0117420 * M W X + D B X + 1 ( = 2 0
0117440 b - R S C o u n t ) a n d
0117460 m a s k s w i t h 1 ' s
0117500 i n b i t s 1 7 b - M W X
0117520 t o 1 7 b \r * ( = R S C o u
0117540 n t m o d 2 0 b t o 1 7
0117560 b ) . \r \t C y c l e C o n t r o
0117600 l _ f p C C T e m p ; \r \t T
0117620 _ ( R F [ D B [ f p F r a c
0117640 L ] ] ) o r T ; \r \t D B [ f
0117660 p F r a c H ] _ R F [ D B [
0117700 f p F r a c H ] ] 376 001 \0 : 033 ,
0117720 R e t u r n ; \r \r * 2 1 b t o
0117740 3 7 b \r \t L U _ D B [ f p
0117760 F r a c L ] - 1 , L o a d
0120000 P a g e [ f p P a g e 0 ] , G
0120020 o T o P [ . + 1 ] , A t [ U n
0120040 n o r m D i s p , 1 ] ; \r O n P
0120060 a g e [ f p P a g e 3 ] ; \t *
0120100 + 1 a l w a y s . e q . o
0120120 r ( 1 C ) h e r e \r \t T _
0120140 ( W F A [ D B [ f p F r a c H
0120160 ] ] ) + 1 , U s e C O u t
0120200 A s C I n , G o T o P [ . + 1
0120220 ] ; \r O n P a g e [ f p P a g e
0120240 0 ] ; \r \t C y c l e C o n t r o
0120260 l _ f p C C T e m p , f p
0120300 C C T e m p _ T , N o 376 001
0120320 \0 l 021 R e g I L o c k O K ; \r \t
0120340 M N B R _ f p C C T e m p ;
0120360 \r \t T _ R F [ D B [ f p F r
0120400 a c H ] ] ; \r U n n o r m 1 : \r
0120420 \t D B [ f p F r a c H ] _ 0
0120440 C , R e t u r n ; \r \r U n n o
0120460 r m 0 : \r \t D i s p a t c h [ f
0120500 p T e m p , 4 , 1 ] ; \r \t T _
0120520 M N B R _ D B [ f p F r a
0120540 c L ] , D i s p [ . + 1 ] ; \r
0120560 \t M N B R _ R Z e r o , R
0120600 e t u r n , D i s p T a b l e
0120620 [ 2 ] ; \t * N o s h i f t \r \t
0120640 T _ D B [ f p F r a c H ] ,
0120660 G o T o [ U n n o r m 1 ] ; \t
0120700 * S h i f t e x a c t l y 1
0120720 w o 376 001 \0 + 264 r d \r \f \r % F o
0120740 r A l t o M e s a , F l o
0120760 a t T r a p e t a l . s t
0121000 o r e a l p h a i n O T P
0121020 R e g , s e t T t o \r s F
0121040 l o a t i n g P o i n t , a n
0121060 d g o t o K f c r w h i
0121100 c h t r a p s t o M e s a
0121120 C o d e t o t r y a g a i
0121140 n \r o n t h i s o p e r a t
0121160 i o n . F o r C e d a r
0121200 M e s a , t h e p a r a m e
0121220 t e r i s 4 0 0 + a l p
0121240 h a . \r \r A r r i v e a t O
0121260 v e r U n d e r f l o w f o r
0121300 e x p o n e n t s 4 0 1 b
0121320 t o 7 7 7 b 376 001 \0 @ 001 w i t
0121340 h t h e e x p o n e n t f
0121360 i e l d \r o f f s e t b y -
0121400 1 . E x p o n e n t s o f
0121420 0 o r o f 7 7 7 b d o
0121440 w n t o 5 7 7 b r e p r e
0121460 s e n t u n d e r f l o w ; \r
0121500 3 7 7 b t o 5 7 6 b r e p
0121520 r e s e n t o v e r f l o w .
0121540 O v e r f l o w a l w a y
0121560 s t r a p s . \r \r G r a d u a
0121600 l d e n o r m a l i z a t i o
0121620 n i s n o t h a n d l e d
0121640 i n m i c r o c o d e a n
0121660 d t r a p s . A m i c r
0121700 o c o d e \r i m p l e m e n t a
0121720 t i o n s h o u l d s 376 001 \0
0121740 033 312 e n s i b l y h a n d l e
0121760 n o t o n l y d e n o r m
0122000 a l i z e d r e s u l t s b
0122020 u t a l s o \r d e n o r m a l
0122040 i z e d a r g u m e n t s .
0122060 F o r a n u n d e r f l o
0122100 w i n g r e s u l t , m i c
0122120 r o c o d e w o u l d f i r
0122140 s t \r r i g h t - s h i f t t
0122160 h e f r a c t i o n o n e
0122200 p o s i t i o n b e c a u s e
0122220 t h e i m p l i c i t l e
0122240 a d i n g 1 i s n ' t \r t h
0122260 e r e w i t h a z e r o
0122300 e x p o n e n t . T h e n
0122320 i t w o u l d r i g h t - s
0122340 h i 376 001 \0 r 221 f t t h e f r
0122360 a c t i o n w h i l e \r c o u
0122400 n t i n g t h e e x p o n e
0122420 n t u p t o z e r o .
0122440 R o u n d i n g w o u l d t
0122460 a k e p l a c e a f t e r
0122500 s h i f t i n g , \r a n d t h
0122520 e s p e c i a l c a s e i
0122540 n w h i c h r o u n d i n g
0122560 n o r m a l i z e s t h e
0122600 n u m b e r w o u l d b e
0122620 d e a l t \r w i t h . U n p
0122640 a c k i n g w o u l d n o r
0122660 m a l i z e t h e f r a c t
0122700 i o n w h i l e c o u n t i
0122720 n g t h e e x p o n e n t \r
0122740 t o a n e 376 001 \0 @ 255 g a t i
0122760 v e v a l u e . \r % \r % - - -
0123000 - - \r O v e r U n d e r f l o w
0123020 : \r \t L U _ S B [ f p E x p
0123040 S i g n ] - ( 1 3 7 4 0 0 C
0123060 ) ; \t * D i s t i n g u i s h
0123100 o v e r f l o w a n d u n d
0123120 e r f l o w \r \t L U _ ( f p
0123140 S t i c k y ) a n d ( 2 0 0
0123160 0 0 C ) , S k i p [ A L U < 0
0123200 ] ; \r \t D b l G o T o [ P a
0123220 c k 0 , F l o a t T r a p , A L
0123240 U # 0 ] ; \t * U n d e r f l o w
0123260 - - c h e c k m o d e \r \t T
0123300 _ S S t k P , G o T o [ F l
0123320 o a t T r p 1 ] ; \t \t * O v e r
0123340 f l o w \r \r O v e r f l 376 001 \0 230
0123360 \t o w : \t \t * F o r e x p o n
0123400 e n t . e q . 3 7 7 b o r
0123420 4 0 0 b \r \t T _ S S t k P
0123440 , G o T o [ F l o a t T r p 1
0123460 ] ; \r \r I n e x a c t T r a p :
0123500 \r \t T _ S S t k P , G o T
0123520 o [ F l o a t T r p 1 ] ; \r F i
0123540 x T r a p A : \r \t T _ S S t
0123560 k P , G o T o [ F l o a t T r
0123600 p 1 ] ; \r F i x T r a p B : \r \t
0123620 T _ S S t k P , G o T o [
0123640 F l o a t T r p 1 ] ; \r F i x T
0123660 r a p : \r \t T _ S S t k P ,
0123700 G o T o [ F l o a t T r p 1 ]
0123720 ; \r N a N T r a p : \r \t T _
0123740 S S t k P , G o T o [ F l o a
0123760 t 376 001 \0 301 217 T r p 1 ] ; \r I n e
0124000 x a c t T r a p A : \r D e n o r
0124020 m T r a p : \r \t T _ S S t k
0124040 P , G o T o [ F l o a t T r p
0124060 1 ] ; \r F l o a t T r a p : \r \t
0124100 T _ S S t k P ; \t * E v e n
0124120 p l a c e m e n t ; p a i r
0124140 e d w i t h m i a t P a
0124160 c k 0 . \r : I F [ A l t o M o d
0124200 e ] ; * * * * * * * * * * * *
0124220 * * * * * * * * * * * * * * * *
*
0124260 \r F l o a t T r p 1 : \r \t f p T
0124300 e m p _ T , T a s k ; \r \t
0124320 S t k P _ f p T e m p ; \r \t
0124340 L o a d P a g e E x t e r n a l
0124360 [ o p P a g 376 001 \0 n 232 e 3 ] ; \r
0124400 f p T r a p E x i t : \r \t T _
0124420 s F l o a t i n g P o i n t ,
0124440 G o T o E x t e r n a l [ k f
0124460 c r L o c ] ; \r : E L S E ; *
0124500 * * * * * * * * * * * * * * * *
*
0124560 * * * \r F l o a t T r p 1 : \r \t
0124600 T r a p P a r m _ T , T a
0124620 s k ; \r \t T r a p P a r m _
0124640 ( S t k P _ T r a p P a r m
0124660 ) x o r T ; \r f p T r a p E
0124700 x i t : \r \t L o a d P a g e [ o
0124720 p P a g e 0 ] ; \r \t R T e m p
0124740 _ ( R T e m p ) + ( 4 0 0
0124760 C ) , G o T o P [ U 376 001 \0 240 v
0125000 n d e f T r a p ] ; \t * 4 0 0
0125020 + a l p h a \r : E N D I F ;
0125040 * * * * * * * * * * * * * * * *
*
0125120 * * * \r - - - - - % \r O v e r U
0125140 n d e r f l o w : \r \t l s p U F
0125160 N _ ( l s p U F N ) o r
0125200 ( 3 4 0 c ) , g o t o [ u f n
0125220 L B L ] ; \r O v e r f l o w : \t
0125240 \t * F o r e x p o n e n t .
0125260 e q . 3 7 7 b o r 4 0 0 b
0125300 \r \t l s p U F N _ ( l s p U
0125320 F N ) o r ( 3 4 0 c ) , g
0125340 o t o [ u f n L B L ] ; \r N a N
0125360 T r a p : \r \t l s p U F N _
0125400 376 001 \0 C j ( l s p U F N ) o r
0125420 ( 3 4 0 c ) , g o t o [ u f
0125440 n L B L ] ; \r D e n o r m T r a
0125460 p : \r \t l s p U F N _ ( l s
0125500 p U F N ) o r ( 3 4 0 c ) ,
0125520 g o t o [ u f n L B L ] ; \r F
0125540 l o a t T r a p : \r \t l s p U F
0125560 N _ ( l s p U F N ) o r
0125600 ( 3 4 0 c ) , g o t o [ u f n
0125620 L B L ] ; \r \f \r % A d d i t i o
0125640 n a n d s u b t r a c t i o
0125660 n a r e a l m o s t t h e
0125700 s a m e . \r 1 ) U n p
0125720 a c k t h e a r g u m e n t
0125740 s , n e g a t e A r g 2 i
0125760 f F S u b , c h e c k f o
0126000 r z e r 376 001 \0 216 G o e s . \r
0126020 2 ) P o i n t D B a t t
0126040 h e a r g u m e n t w i t h
0126060 t h e s m a l l e r e x p
0126100 o n e n t , S B a t t h e
0126120 o t h e r , a n d \r c a l l
0126140 U n n o r m t o r i g h t
0126160 - s h i f t t h e D B a r
0126200 g u m e n t b y t h e d i
0126220 f f e r e n c e i n t h e
0126240 e x p o n e n t s . \r 3 ) A
0126260 d d o r s u b t r a c t m
0126300 a g n i t u d e s , d e p e n
0126320 d i n g o n t h e s i g n
0126340 s . \r 5 ) R e n o r m a l i
0126360 z e t h e r e s u l t , r
0126400 o u n d , a n d 376 001 \0 254 006 p
0126420 u s h i t o n t h e s t
0126440 a c k . \r \r G e t h e r e a
0126460 f t e r T _ f p F r a c 1
0126500 H ; S B s e l e c t s a r
0126520 g 1 . \r \r T i m i n g @ F A d
0126540 d t o R e n o r m : 2 4
0126560 + ( 2 i f F S u b ) +
0126600 ( 5 i f E x p 1 . l s .
0126620 E x p 2 ) \r + ( 7 i f s u
0126640 b t r a c t i o n p r o d u c
0126660 e s n e g a t i v e f r a c
0126700 t i o n ) \r + ( 1 i f U n
0126720 n o r m p r o d u c e s o n
0126740 e s i n M N B R ) . A d
0126760 d U n n o r m t i m e t o
0127000 t h i s . \r F o r t h o s 376
0127020 001 \0 322 375 e c a s e s w h i c
0127040 h e n t e r R e n o r m a
0127060 t N o r m G o , 4 c y c l
0127100 e s h a v e b e e n s u b
0127120 t r a c t e d . \r S u b t r a c
0127140 t i o n c a n p r o d u c e
0127160 a n e g a t i v e r e s u
0127200 l t o n l y w h e n E x p
0127220 1 . e q . E x p 2 ; \r U n n
0127240 o r m p r o d u c e s a s
0127260 t i c k y b i t o n l y f
0127300 o r e x p o n e n t d i f f
0127320 e r e n c e s l a r g e r t
0127340 h a n 7 . \r \r 0 o r 1 N
0127360 o r m S t e p s w i l l b e
0127400 p e r f o r m e d a f t e r
0127420 a d d 376 001 \0 273 p i t i o n ; \r
0127440 1 o r 2 N o r m S t e p s
0127460 w i l l b e p e r f o r m
0127500 e d a f t e r s u b t r a c
0127520 t i o n u s u a l l y ; b u
0127540 t \r u p t o 2 4 d N o r m
0127560 S t e p s m i g h t b e p
0127600 e r f o r m e d i f 0 . 5
0127620 < a r g 1 / a r g 2 < 2 .
0127640 0 . \r % \r @ F S u b : \t f p E x
0127660 p S i g n 2 _ ( f p E x p S
0127700 i g n 2 ) x o r ( 1 C ) ,
0127720 A t [ U n p a c k R e t , 1 ] ;
0127740 \t * C o m p l e m e n t s i g
0127760 n \r @ F A d d : \t L U _ ( f
0130000 p F r a c 2 H ) a n d T ,
0130020 A t [ U n p a c k 376 001 \0 311 305 R e
0130040 t , 0 ] ; \r * S i m u l t a n e
0130060 o u s l y c o m p u t e t h
0130100 e e x p o n e n t d i f f e
0130120 r e n c e i n b i t s 0 :
0130140 8 w h i l e X O R ' i n g \r
0130160 * t h e s i g n s i n b i
0130200 t 1 5 d a n d s e t t i n
0130220 g u p a 3 i n b i t s
0130240 1 0 : 1 1 d f o r S B _
0130260 a n d D B _ . \r * T h e " 1
0130300 " i n " 6 1 C " h e r e
0130320 p r e v e n t s s i g n s u
0130340 b t r a c t i o n f r o m p
0130360 r o p a g a t i n g h i g h e
0130400 r . \r \t T _ ( f p E x p S
0130420 i g n 2 ) - ( 6 1 C ) , 376 001
0130440 \0 031 4 G o T o [ A d d 0 , A L
0130460 U = 0 ] ; \r \t T _ ( f p E x
0130500 p S i g n 1 ) - T , C a l
0130520 l [ F A d d A ] ; \r * R e t u r
0130540 n h e r e a f t e r U n n
0130560 o r m . O r t h e S t i
0130600 c k y b i t i n t o D B [
0130620 f p F r a c L ] b i t 1 5
0130640 a n d t e s t \r * c y c l e
0130660 t h e ( S i g n 1 x o r S
0130700 i g n 2 ) b i t i n t o t
0130720 h e A L U s i g n f o r
0130740 t e s t i n g . \r \t L U _ M
0130760 N B R ; \r \t L U _ R C y [ f
0131000 p T e m p , 1 ] , S k i p [ A
0131020 L U = 0 ] ; \r \t T _ ( R
0131040 S h [ 376 001 \0 ) ' A l l O n e s ,
0131060 1 7 ] ) o r T , D b l G o
0131100 T o [ A d d F r a c , S u b F r
0131120 a c , A L U < 0 ] ; \r \t D b l G
0131140 o T o [ A d d F r a c , S u b F
0131160 r a c , A L U < 0 ] ; \r \r * f p
0131200 T e m p _ [ ( E x p 1 - E x
0131220 p 2 ) l s h 7 ] + 6 1 b
0131240 + S 1 - S 2 \r F A d d A
0131260 : \t f p T e m p _ T , S k
0131300 i p [ A L U < 0 ] ; \r * E x p 1
0131320 . g e . E x p 2 : P o i n
0131340 t S B a t a r g 1 ( i t
0131360 a l r e a d y d o e s ) ,
0131400 D B a t a r g 2 . \r \t D
0131420 B _ f p T e m p , G o T o
0131440 [ U n n o r m ] 376 001 \0 \ 1 ; \r *
0131460 E x p 1 . l s . E x p 2 :
0131500 P o i n t S B a t a r g 2
0131520 , D B a t a r g 1 ; n e
0131540 g a t e t h e c o u n t . \r
0131560 \t T _ 1 5 7 C ; \r * f p T e
0131600 m p _ [ ( E x p 1 - E x p 2
0131620 ) ' l s h 7 ] + 4 1 b
0131640 + S 1 - S 2 ; S B _
0131660 3 . \r \t f p T e m p _ ( S B
0131700 _ f p T e m p ) x n o r
0131720 T ; \r * f p T e m p _ [ ( E
0131740 x p 2 - E x p 1 ) l s h 7 ]
0131760 + 2 1 b + S 1 - S 2
0132000 ; D B _ 2 . \r \t f p T e m
0132020 p _ ( D B _ f p T e m p
0132040 ) + T + 1 , G o 376 001 \0
0132060 X \n T o [ U n n o r m ] ; \r \r *
0132100 T h e s i g n s a r e e q
0132120 u a l ; a d d t h e f r
0132140 a c t i o n s . D B [ f p F
0132160 r a c L ] i s i n T . \r A
0132200 d d F r a c : \r \t S B [ f p F r
0132220 a c L ] _ S B [ f p F r a c
0132240 L ] + T , T a s k ; \r \t T
0132260 _ D B [ f p F r a c H ] +
0132300 1 , U s e C O u t A s C I n
0132320 ; \r \t S B [ f p F r a c H ] _
0132340 S B [ f p F r a c H ] + T
0132360 , G o T o [ R e n o r m ] ; \r
0132400 \r * T h e s i g n s a r e
0132420 d i f f e r e n t ; s u b t
0132440 r a c t t h e f r a c t i o
0132460 n s 376 001 \0 323 255 . D B [ f p F
0132500 r a c L ] i s i n T . \r S
0132520 u b F r a c : \r \t S B [ f p F r
0132540 a c L ] _ S B [ f p F r a c
0132560 L ] - T ; \r \t T _ D B [
0132600 f p F r a c H ] , F r e e z e
0132620 R e s u l t ; \r \t S B [ f p F r
0132640 a c H ] _ T _ ( S B [ f
0132660 p F r a c H ] ) - T , U s
0132700 e C O u t A s C I n ; \r \t L U
0132720 _ S B [ f p F r a c L ] o r
0132740 T , G o T o [ S u b N e g ,
0132760 A L U < 0 ] ; \r S u b N o n N e
0133000 g : \r \t S B [ f p E x p S i g n
0133020 ] _ S B [ f p E x p S i g n
0133040 ] - ( 2 0 0 C ) , G o T o
0133060 [ L o n g N o 376 001 \0 330 T r m G o
0133100 , A L U # 0 ] ; \r * * * * * \t T
0133120 _ S t a c k & + 1 _ 0 C
0133140 , G o T o [ F l P u s h ] ; \r
0133160 \t g o t o [ P a c k 0 ] ; \r \r *
0133200 G e t h e r e o n l y w h
0133220 e n t h e e x p o n e n t s
0133240 a r e e q u a l a n d t
0133260 h e D B f r a c t i o n i
0133300 s l a r g e r \r * t h a n t
0133320 h e S B f r a c t i o n .
0133340 2 t o 2 4 d N o r m S t
0133360 e p s w i l l b e p e r f
0133400 o r m e d . \r S u b N e g : \t T
0133420 _ S B [ f p F r a c L ] ,
0133440 C a l l [ N e g F r a c 1 ] ; \r
0133460 * S i m u l t a n e o u 376 001 \0 ]
0133500 C s l y c o m p l e m e n t
0133520 t h e s i g n a n d s u b
0133540 t r a c t 1 f r o m t h e
0133560 e x p o n e n t . \r \t S B
0133600 [ f p E x p S i g n ] _ S B
0133620 [ f p E x p S i g n ] - ( 1
0133640 7 7 C ) , G o T o [ L o n g N
0133660 o r m G o ] ; \r \f \r % M u l t i
0133700 p l y . \r 1 ) U n p a c k
0133720 a r g u m e n t s l e a v i n
0133740 g n o r m a l i z e d f r a
0133760 c t i o n s i n f p F r a c
0134000 H [ 1 : 1 5 ] , , f p F r a c L
0134020 [ 0 : 8 ] . \r 2 ) C h e c k
0134040 f o r z e r o a r g u m e
0134060 n t s . G o T o M u l 0
0134100 i 376 001 \0 b 226 f e i t h e r a
0134120 r g d e n o r m a l i z e d ;
0134140 s i n c e \r U n p a c k h a
0134160 s t r a p p e d f o r a n
0134200 y n o n - 0 d e n o r m a l
0134220 i z e d a r g , t h e " a
0134240 n d " a t @ F M u l i s \r
0134260 a l w a y s n o n - 0 f o r
0134300 b o t h a r g s n o n - 0
0134320 . \r 3 ) S e t s i g n a
0134340 n d e x p o n e n t o f F
0134360 r a c 1 t o E x p 1 + E x p
0134400 2 - 1 7 7 b + 1 - 1 , w h e r
0134420 e - 1 7 7 b \r c o m p e n s a
0134440 t e s f o r t h e e x c e
0134460 s s i n E x p 1 + E x p 2 ,
0134500 + 1 f o 376 001 \0 376 263 r t h e
0134520 N o r m S t e p n o r m a l
0134540 l y \r r e q u i r e d , a n d
0134560 - 1 f o r t h e e x p o
0134600 n e n t o f f s e t i n R
0134620 e n o r m ; a l t o g e t h e
0134640 r t h i s i s \r E x p 1 + E
0134660 x p 2 - 1 7 7 b . A d d i n
0134700 g f p E x p S i g n 1 t o
0134720 f p E x p S i g n 2 a l s o
0134740 X O R ' s t h e s i g n b
0134760 i t \r f o r t h e r e s u l
0135000 t . \r 4 ) S h i f t f p F
0135020 r a c 2 s o n o n - 0 b i
0135040 t s a r e i n f p F r a c
0135060 2 H [ 8 : 1 5 ] , , f p F r a c
0135100 2 L [ 0 : 1 5 ] ; \r t 376 001 \0 340 C
0135120 h e n c o p y f p F r a c 2
0135140 L i n t o M N B R f o r
0135160 t h e i n n e r l o o p s ;
0135200 f p F r a c 2 L b e c o m e
0135220 s \r t h e l o w - o r d e r
0135240 p r o d u c t w o r d f p F
0135260 r a c 1 L L . \r 5 ) L e f t
0135300 - s h i f t f p F r a c 1 H /
0135320 L 2 p o s i t i o n s a n
0135340 d a d d f p F r a c 2 H t
0135360 o f p F r a c 1 L ; t h e \r
0135400 l e a d i n g m u l t i p l i
0135420 e r b i t i s k n o w n
0135440 t o b e 1 , s o t h e
0135460 i n n e r l o o p i s e n
0135500 t e r e d w i t h \r t h e m
0135520 376 001 \0 037 207 u l t i p l i e r l
0135540 s h 1 i n f p F r a c 1 H
0135560 / L / L L [ 0 : 2 5 b ] a n d
0135600 t h e m u l t i p l i c a n
0135620 d i n \r f p F r a c 1 H / L /
0135640 L L [ 3 0 : 5 7 b ] . \r 6 )
0135660 P e r f o r m t h e s h i f
0135700 t a n d a d d l o o p 2
0135720 3 d t i m e s , s i n c e
0135740 t h e 1 s t o f 2 4 d s
0135760 t e p s w a s \r d o n e b e
0136000 f o r e s t a r t i n g t h
0136020 e l o o p . I n i t i a l
0136040 l y , t w o 0 b i t s l
0136060 i e b e t w e e n t h e \r l
0136100 o w - o r d e r m u l t i p l
0136120 i e r a 376 001 \0 f 341 n d h i g
0136140 h - o r d e r p r o d u c t
0136160 b i t s . E a c h s t e p
0136200 s h i f t s t h e \r m u l t
0136220 i p l i e r a n d p r o d u
0136240 c t i n f p F r a c 1 H / L
0136260 / L L a n d c o n d i t i o
0136300 n a l l y a d d s t h e \r m
0136320 u l t i p l i c a n d i n f
0136340 p F r a c 2 H / M N B R . C
0136360 a r r i e s m a y m a k e
0136400 t h e 2 n d o f t h e t
0136420 w o 0 ' s \r b e t w e e n t
0136440 h e m u l t i p l i e r a n
0136460 d p r o d u c t i n t o a
0136500 1 , b u t t h e 1 s t
0136520 0 w i l l r e m 376 001 \0 8 5 a
0136540 i n 0 . \r 7 ) D o 0 o
0136560 r 1 N o r m S t e p s a t
0136600 R e n o r m . \r \r T i m i n g
0136620 @ F M u l t o R e n o r m
0136640 f o r n o n - 0 a r g s :
0136660 ( 3 6 o r 3 9 ) + 8 *
0136700 ( 1 0 / z e r o o r 1 9 / o
0136720 n e ) \r + 1 5 * ( 6 / z e r o
0136740 , [ 1 1 o r 1 4 ] / o n e
0136760 ) . T o t a l a v e r a g
0137000 e s 2 9 3 . 7 5 c y c l e s
0137020 . \r % \r @ F M u l : \t L U _
0137040 ( f p F r a c 2 H ) a n d T
0137060 , A t [ U n p a c k R e t , 2
0137100 ] ; \r \t T _ ( f p E x p S i
0137120 g n 2 ) - ( 3 7 4 0 0 C ) 376
0137140 001 \0 t 177 , G o T o [ M u l 0 ,
0137160 A L U = 0 ] ; \r \t f p E x p S i
0137200 g n 1 _ ( f p E x p S i g n
0137220 1 ) + T , L o a d P a g e
0137240 [ f p P a g e 4 ] ; \r \t T _
0137260 R S h [ f p F r a c 1 L , 1 6 ]
0137300 ; \r O n P a g e [ f p P a g e 4
0137320 ] ; \r \t f p F r a c 1 H _ (
0137340 L S h [ f p F r a c 1 H , 2 ] )
0137360 o r T , T a s k ; \r \t T
0137400 _ L S h [ f p F r a c 2 H , 1
0137420 1 ] ; \r \t f p F r a c 1 L L _
0137440 ( R S h [ f p F r a c 2 L , 7
0137460 ] ) o r T ; \t * F o r t h
0137500 a t 1 s t m u l t i p l i e
0137520 r 1 \r \t T _ f p F r a c 2
0137540 H _ 376 001 \0 364 . R S h [ f p F
0137560 r a c 2 H , 7 ] , T a s k ; \r
0137600 \t f p F r a c 1 L _ ( L S h
0137620 [ f p F r a c 1 L , 2 ] ) o r
0137640 T ; \r \t f p O n e _ 1 C ;
0137660 \r \t L U _ ( M N B R _ f
0137700 p F r a c 2 L ) S A L U F O P
0137720 T ; \r \t T _ ( f p F r a c
0137740 2 H ) S A L U F O P T , U
0137760 s e C O u t A s C I n ; \r \t f p
0140000 F r a c 2 H L S h 1 _ T ,
0140020 L o a d P a g e [ f p P a g e 2
0140040 ] ; \r \t f p F r a c 2 H L S h 1
0140060 p 1 _ ( Z e r o ) + T
0140100 + 1 ; \r O n P a g e [ f p P a
0140120 g e 2 ] ; \r \t f p C o u n t _
0140140 6 C , C a l l 376 001 \0 363 3 [ F
0140160 M N o A 1 ] ; \t * T o t a l o
0140200 f 5 + 3 * f p C o u n t
0140220 i t e r a t i o n s \r \r % W i t
0140240 h t h i s u n r o l l e d
0140260 l o o p , t h e e x t e r i
0140300 o r s t e p r u n s i n
0140320 1 0 + 9 / a d d c y c l e
0140340 s a n d \r i n t e r i o r s
0140360 t e p s i n 6 + ( 5 o
0140400 r 8 ) / a d d c y c l e s ;
0140420 t h e i n t e r i o r s t
0140440 e p c a n b e \r r e p l i c
0140460 a t e d 0 t o 4 t i m e
0140500 s , t r a d i n g s p a c e
0140520 f o r s p e e d . E a c
0140540 h r e p l i c a t i o n 376 001
0140560 \0 370 371 c o s t s \r 1 0 d m i
0140600 e a c h ( + 5 m i f o r
0140620 i n i t i a l i z i n g t h e
0140640 t h r e e r e g i s t e r s
0140660 n e e d e d ) . \r f p C o u n
0140700 t a n d e n t r y p o i n
0140720 t h a v e t o b e a d j
0140740 u s t e d . T h e 1 s t
0140760 f a s t l o o p s a v e s
0141000 a n \r a v e r a g e o f 2 .
0141020 6 2 5 / c y c l e s b i t ;
0141040 t h e 2 n d s a v e s a n
0141060 a d d i t i o n a l . 8 7 5
0141100 c y c l e s / b i t ; \r 3 4 d
0141120 s a v e s . 4 3 7 5 c y c
0141140 l e s / b i t , e t c . I
0141160 h a 376 001 \0 351 271 v e n ' t f o
0141200 u n d a n y w a y o f m
0141220 a k i n g t h e \r s l o w e
0141240 x t e r i o r l o o p l o o
0141260 k m o r e l i k e t h e
0141300 f a s t o n e a n d s t i
0141320 l l g e t i n t h e \r r e
0141340 q u i r e d t a s k i n g . \r
0141360 % \r \t f p C o u n t _ ( f p
0141400 C o u n t ) - 1 , G o T o
0141420 [ M u l D o n e , R < 0 ] ; \r \r
0141440 \t f p F r a c 1 L L _ ( f p
0141460 F r a c 1 L L ) S A L U F O P
0141500 T ; \r \t f p F r a c 1 L _
0141520