2005-04-17 02:20:36 +04:00
|
| x_ u n i m p . s a 3 . 3 7 / 1 / 9 1
|
| fpsp_ u n i m p - - - F P S P h a n d l e r f o r u n i m p l e m e n t e d i n s t r u c t i o n
| exception.
|
| Invoked w h e n t h e u s e r p r o g r a m e n c o u n t e r s a f l o a t i n g - p o i n t
| op- c o d e t h a t h a r d w a r e d o e s n o t s u p p o r t . T r a p v e c t o r # 11
| ( See t a b l e 8 - 1 M C 6 8 0 3 0 U s e r ' s M a n u a l ) .
|
|
| Note : An f s a v e f o r a n u n i m p l e m e n t e d i n s t . w i l l c r e a t e a s h o r t
| fsave s t a c k .
|
| Input : 1 . Six w o r d s t a c k f r a m e f o r u n i m p l e m e n t e d i n s t , f o u r w o r d
| for i l l e g a l
| ( See t a b l e 8 - 7 M C 6 8 0 3 0 U s e r ' s M a n u a l ) .
| 2 . Unimp ( s h o r t ) f s a v e s t a t e f r a m e c r e a t e d h e r e b y f s a v e
| instruction.
|
|
| Copyright ( C ) M o t o r o l a , I n c . 1 9 9 0
| All R i g h t s R e s e r v e d
|
2006-02-12 04:55:48 +03:00
| For d e t a i l s o n t h e l i c e n s e f o r t h i s f i l e , p l e a s e s e e t h e
| file, R E A D M E , i n t h i s s a m e d i r e c t o r y .
2005-04-17 02:20:36 +04:00
X_UNIMP : | idnt 2 ,1 | M o t o r o l a 0 4 0 F l o a t i n g P o i n t S o f t w a r e P a c k a g e
| section 8
# include " f p s p . h "
| xref g e t _ o p
| xref d o _ f u n c
| xref s t o _ r e s
| xref g e n _ e x c e p t
| xref f p s p _ f m t _ e r r o r
.global fpsp_unimp
.global uni_2
fpsp_unimp :
link % a6 ,#- L O C A L _ S I Z E
fsave - ( % a7 )
uni_2 :
moveml % d0 - % d1 / % a0 - % a1 ,U S E R _ D A ( % a6 )
fmovemx % f p0 - % f p3 ,U S E R _ F P 0 ( % a6 )
fmoveml % f p c r / % f p s r / % f p i a r ,U S E R _ F P C R ( % a6 )
moveb ( % a7 ) ,% d0 | t e s t f o r v a l i d v e r s i o n n u m
andib #0xf0 ,% d0 | t e s t f o r $ 4 x
cmpib #V E R _ 4 ,% d0 | m u s t b e $ 4 x o r e x i t
bnel f p s p _ f m t _ e r r o r
|
| Temporary D 2 5 B F i x
| The f o l l o w i n g l i n e s a r e u s e d t o e n s u r e t h a t t h e F P S R
| exception b y t e a n d c o n d i t i o n c o d e s a r e c l e a r b e f o r e p r o c e e d i n g
|
movel U S E R _ F P S R ( % a6 ) ,% d0
andl #0xFF00FF ,% d0 | c l e a r a l l b u t a c c r u e d e x c e p t i o n s
movel % d0 ,U S E R _ F P S R ( % a6 )
fmovel #0 ,% F P S R | c l e a r a l l u s e r b i t s
fmovel #0 ,% F P C R | c l e a r a l l u s e r e x c e p t i o n s f o r F P S P
clrb U F L G _ T M P ( % a6 ) | c l r f l a g f o r u n s u p p d a t a
bsrl g e t _ o p | g o g e t o p e r a n d ( s )
clrb S T O R E _ F L G ( % a6 )
bsrl d o _ f u n c | d o t h e f u n c t i o n
fsave - ( % a7 ) | c a p t u r e p o s s i b l e e x c s t a t e
tstb S T O R E _ F L G ( % a6 )
bnes n o _ s t o r e | i f S T O R E _ F L G i s s e t , n o s t o r e
bsrl s t o _ r e s | s t o r e t h e r e s u l t i n u s e r s p a c e
no_store :
bral g e n _ e x c e p t | p o s t a n y e x c e p t i o n s a n d r e t u r n
| end