logo资料库

PowerPC 汇编与C语言互调的eabi规范.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
1. Overview
2. File Formats
3. Data Types and Alignment
4. Register Usage Conventions
5. Stack Frame Conventions
6. Parameter Passing
7. Small Data Areas
8. Conclusion
9. References
• • • • • • 1 D e v e l o p i n g P o w e r P C E m b e d d e d A p p l i c a t i o n B i n a r y I n t e r f a c e ( E A B I ) C o m p l i a n t P r o g r a m s S e p t e m b e r 2 1 , 1 9 9 8 M i c r o c o n t r o l l e r A p p l i c a t i o n s I B M M i c r o e l e c t r o n i c s R e s e a r c h T r i a n g l e P a r k , N C p p c s u p p @ u s . i b m . c o m V e r s i o n : 1 . 0 A b s t r a c t – T h i s a p p l i c a t i o n n o t e d e s c r i b e s t h e P o w e r P C E m b e d d e d A p p l i c a t i o n B i n a r y I n t e r f a c e ( E A B I ) a n d i s o f i n t e r e s t t o s o f t w a r e d e v e l o p e r s w r i t i n g a s s e m b l y l a n g u a g e c o d e t o i n t e r f a c e w i t h h i g h - l e v e l l a n g u a g e p r o g r a m s a n d s o f t w a r e d e v e l o p m e n t t o o l v e n d o r s . T h e E A B I i s a s e t o f c o n v e n t i o n s f o r e m b e d d e d a p p l i c a t i o n s a n d d e v e l o p m e n t t o o l s d e s i g n e d t o i n s u r e c o m p a t i b i l i t y f o r a d e s c r i b e d s e t o f f u n c t i o n a l i t y . I t p r o v i d e s s o f t w a r e d e v e l o p e r s t h e o p p o r t u n i t y t o c h o o s e a m o n g v a r i o u s v e n d o r s o f c o m p i l e d l i b r a r i e s a n d s o f t w a r e d e v e l o p m e n t t o o l s . A s l o n g a s t h e y a r e E A B I c o m p l i a n t , t h e y w i l l w o r k c o r r e c t l y w i t h e a c h o t h e r . 1 . O v e r v i e w A n A p p l i c a t i o n B i n a r y I n t e r f a c e ( A B I ) s p e c i f i e s a n i n t e r f a c e f o r c o m p i l e d a p p l i c a t i o n p r o g r a m s t o s y s t e m s o f t w a r e . T h e E m b e d d e d A p p l i c a t i o n B i n a r y I n t e r f a c e ( E A B I ) i s d e r i v e d f r o m t h e P o w e r P C A B I S u p p l e m e n t t o t h e U N I X S y s t e m V A B I . T h e P o w e r P C A B I S u p p l e m e n t w a s d e s i g n e d f o r w o r k s t a t i o n o p e r a t i n g s y s t e m s s u c h a s I B M ' s A I X a n d A p p l e ' s M a c O S . T h e E A B I d i f f e r s f r o m t h e P o w e r P C A B I S u p p l e m e n t w i t h t h e g o a l o f r e d u c i n g m e m o r y u s a g e a n d o p t i m i z i n g e x e c u t i o n s p e e d , a s t h e s e a r e p r i m e r e q u i r e m e n t s o f e m b e d d e d s y s t e m s o f t w a r e . T h e E A B I d e s c r i b e s c o n v e n t i o n s f o r r e g i s t e r u s a g e , p a r a m e t e r p a s s i n g , s t a c k o r g a n i z a t i o n , s m a l l d a t a a r e a s , o b j e c t f i l e , a n d e x e c u t a b l e f i l e f o r m a t s . T h i s a p p l i c a t i o n n o t e c o v e r s t h e f o l l o w i n g E A B I t o p i c s : D e v e l o p m e n t t o o l f i l e f o r m a t s D a t a t y p e s a n d a l i g n m e n t R e g i s t e r u s a g e c o n v e n t i o n s S t a c k f r a m e c r e a t i o n a n d o r g a n i z a t i o n F u n c t i o n p a r a m e t e r p a s s i n g S m a l l d a t a a r e a u s a g e a n d o r g a n i z a t i o n 2 . F i l e F o r m a t s O b j e c t a n d e x e c u t a b l e f i l e s c o m p l y i n g w i t h t h e E A B I a r e i n t h e E x t e n d e d L i n k i n g F o r m a t ( E L F ) a n d d e b u g i n f o r m a t i o n i s c o n t a i n e d i n D e b u g w i t h A r b i t r a r y R e c o r d F o r m a t ( D W A R F ) r e c o r d s . T h e c u r r e n t r e v i s i o n o f t h e D W A R F s t a n d a r d i s 1 . 1 . 0 . T h e r e i s a p r o p o s e d r e v i s i o n o f t h e s t a n d a r d c u r r e n t l y k n o w n a s D W A R F 2 . 0 . 0 w h i c h p r i m a r i l y a d d s f e a t u r e s t o s u p p o r t C + + c o d e d e b u g g i n g . A l t h o u g h n o t y e t a n o f f i c i a l s t a n d a r d , m a n y t o o l p r o v i d e r s h a v e i m p l e m e n t a t i o n s o f , o r c l o s e t o , t h e c u r r e n t p r o p o s e d D W A R F 2 . 0 . 0 s t a n d a r d .
2 3 . D a t a T y p e s a n d A l i g n m e n t T h e P o w e r P C a r c h i t e c t u r e d e f i n e s s c a l a r ( i n t e g e r ) d a t a t y p e s i z e s a s s h o w n i n T a b l e 1 . T a b l e 1 - P o w e r P C s c a l a r d a t a t y p e s D a t a t y p e S i z e ( b y t e s ) B y t e 1 H a l f w o r d 2 W o r d 4 D o u b l e w o r d 8 Q u a d w o r d 1 6 A l l d a t a t y p e s a r e a l i g n e d i n m e m o r y , a n d i n t h e s t a c k f r a m e , o n a d d r e s s e s t h a t a r e a m u l t i p l e o f t h e i r s i z e . F o r e x a m p l e , a w o r d , s i n c e i t s s i z e i s 4 b y t e s , i s a l i g n e d o n a n a d d r e s s e v e n l y d i v i s i b l e b y 4 . T h e a d d r e s s o f a h a l f w o r d i s e v e n l y d i v i s i b l e b y 2 . A n e x c e p t i o n t o t h i s r u l e i s q u a d - w o r d s w h e n t h e y a r e n o t c o n t a i n e d i n a u n i o n o r s t r u c t u r e ; t h e y o n l y r e q u i r e a l i g n m e n t t o e i g h t b y t e b o u n d a r i e s . A r r a y s a r e a l i g n e d o n t h e b o u n d a r y r e q u i r e d b y t h e s i z e o f t h e d a t a t y p e o f t h e a r r a y e l e m e n t s . A s t r u c t u r e ( o r u n i o n ) i s a l i g n e d b a s e d o n t h e a l i g n m e n t r e q u i r e m e n t s o f t h e s t r u c t u r e s l a r g e s t m e m b e r . T h u s , i f t h e s t r u c t u r e c o n t a i n s a d o u b l e w o r d , t h e d o u b l e w o r d m e m b e r m u s t b e g i n o n a n a d d r e s s e v e n l y d i v i s i b l e b y 8 . P a d d i n g o f p r i o r a n d s u b s e q u e n t m e m b e r s i s d o n e a s n e e d e d t o m a i n t a i n t h e i r i n d i v i d u a l a l i g n m e n t r e q u i r e m e n t s . T h e s i z e o f a s t r u c t u r e i s a l w a y s a m u l t i p l e o f t h e s t r u c t u r e ' s a l i g n m e n t . I f n e c e s s a r y a s t r u c t u r e i s p a d d e d a f t e r t h e l a s t m e m b e r t o i n c r e a s e i t s s i z e t o b e a m u l t i p l e o f i t s a l i g n m e n t . E A B I c o m p l i a n t c o m p i l e r s a n d a s s e m b l e r s w i l l a u t o m a t i c a l l y c r e a t e c o r r e c t l y a l i g n e d d a t a a l l o c a t i o n s b u t t h e p a d d i n g r e q u i r e d m a y c a u s e p r o b l e m s f o r s o m e a p p l i c a t i o n s . A n e x a m p l e w o u l d b e a n e t w o r k i n g - p r o t o c o l d a t a p a c k e t , w h i c h h a s s p e c i f i c a l i g n m e n t r e q u i r e m e n t s . F o r t h e s e s i t u a t i o n s s o m e c o m p i l e r s a l l o w t h e a l i g n m e n t f e a t u r e t o b e t u r n e d o f f , o r o v e r r i d d e n w i t h d i f f e r e n t b o u n d a r y v a l u e s . F o r e x a m p l e , t h e I B M H i g h C / C + + c o m p i l e r h a s a # p a c k p r a g m a f o r t h i s p u r p o s e . S i n c e n o n - a l i g n e d d a t a a c c e s s r e q u i r e s m u l t i p l e b u s c y c l e s f o r r e a d s a n d w r i t e s , a n d p e r h a p s e v e n s o f t w a r e a s s i s t a n c e t h r o u g h a n e x c e p t i o n h a n d l e r , p e r f o r m a n c e w i l l b e d e c r e a s e d . N o n - a l i g n e d d a t a a c c e s s s h o u l d b e a v o i d e d i f a t a l l p o s s i b l e . T a b l e 2 s h o w s t h e A N S I C l a n g u a g e d a t a t y p e s a n d t h e i r s i z e s . F o r a l l t y p e s , N U L L i s d e f i n e d a s t h e v a l u e z e r o . S i g n e d a n d u n s i g n e d i n t e g e r t y p e s h a v e t h e s a m e s i z e i n a l l c a s e s . T a b l e 2 - P o w e r P C A N S I C d a t a t y p e s A N S I C d a t a t y p e P o w e r P C D a t a t y p e S i z e ( b y t e s ) c h a r b y t e 1 s h o r t h a l f w o r d 2 i n t w o r d 4 l o n g i n t w o r d 4 e n u m w o r d 4 p o i n t e r w o r d 4 f l o a t w o r d 4 d o u b l e d o u b l e w o r d 8 l o n g d o u b l e q u a d w o r d 1 6 4 . R e g i s t e r U s a g e C o n v e n t i o n s T h e P o w e r P C a r c h i t e c t u r e d e f i n e s 3 2 g e n e r a l p u r p o s e r e g i s t e r s ( G P R s ) a n d 3 2 f l o a t i n g - p o i n t r e g i s t e r s ( F P R s ) . T h e E A B I c l a s s i f i e s r e g i s t e r s a s v o l a t i l e , n o n v o l a t i l e , a n d d e d i c a t e d . N o n v o l a t i l e r e g i s t e r s m u s t h a v e t h e i r o r i g i n a l v a l u e s p r e s e r v e d , t h e r e f o r e , f u n c t i o n s m o d i f y i n g n o n v o l a t i l e r e g i s t e r s m u s t r e s t o r e t h e
3 o r i g i n a l v a l u e s b e f o r e r e t u r n i n g t o t h e c a l l i n g f u n c t i o n . V o l a t i l e r e g i s t e r s d o n o t h a v e t o b e p r e s e r v e d a c r o s s f u n c t i o n c a l l s . T h r e e n o n v o l a t i l e G P R ' s a r e d e d i c a t e d f o r a s p e c i f i c u s a g e , R 1 , R 2 , a n d R 1 3 . R 1 i s d e d i c a t e d a s t h e s t a c k f r a m e p o i n t e r ( S P ) . R 2 i s d e d i c a t e d f o r u s e a s a b a s e p o i n t e r ( a n c h o r ) f o r t h e r e a d - o n l y s m a l l d a t a a r e a . R 1 3 i s d e d i c a t e d f o r u s e a s a n a n c h o r f o r a d d r e s s i n g t h e r e a d - w r i t e s m a l l d a t a a r e a . D e d i c a t e d r e g i s t e r s s h o u l d n e v e r b e u s e d f o r a n y o t h e r p u r p o s e , n o t e v e n t e m p o r a r i l y , b e c a u s e t h e y m a y b e n e e d e d b y a n e x c e p t i o n h a n d l e r a t a n y t i m e . A l l t h e P o w e r P C r e g i s t e r s a n d t h e i r u s a g e a r e d e s c r i b e d i n T a b l e 3 . T a b l e 3 - P o w e r P C E A B I r e g i s t e r u s a g e R e g i s t e r T y p e U s e d f o r : R 0 V o l a t i l e L a n g u a g e S p e c i f i c R 1 D e d i c a t e d S t a c k P o i n t e r ( S P ) R 2 D e d i c a t e d R e a d - o n l y s m a l l d a t a a r e a a n c h o r R 3 - R 4 V o l a t i l e P a r a m e t e r p a s s i n g / r e t u r n v a l u e s R 5 - R 1 0 V o l a t i l e P a r a m e t e r p a s s i n g R 1 1 - R 1 2 V o l a t i l e R 1 3 D e d i c a t e d R e a d - w r i t e s m a l l d a t a a r e a a n c h o r R 1 4 - R 3 1 N o n v o l a t i l e F 0 V o l a t i l e L a n g u a g e s p e c i f i c F 1 V o l a t i l e P a r a m e t e r p a s s i n g / r e t u r n v a l u e s F 2 - F 8 V o l a t i l e P a r a m e t e r p a s s i n g F 9 - F 1 3 V o l a t i l e F 1 4 - F 3 1 N o n v o l a t i l e F i e l d s C R 2 - C R 4 N o n v o l a t i l e O t h e r C R f i e l d s V o l a t i l e O t h e r r e g i s t e r s V o l a t i l e 5 . S t a c k F r a m e C o n v e n t i o n s T h e P o w e r P C a r c h i t e c t u r e d o e s n o t h a v e a p u s h / p o p i n s t r u c t i o n f o r i m p l e m e n t i n g a s t a c k . T h e E A B I c o n v e n t i o n s o f s t a c k f r a m e c r e a t i o n a n d u s a g e a r e d e f i n e d t o s u p p o r t p a r a m e t e r p a s s i n g , n o n v o l a t i l e r e g i s t e r p r e s e r v a t i o n , l o c a l v a r i a b l e s , a n d c o d e d e b u g g i n g . T h e y d o t h i s b y p l a c i n g t h e v a r i o u s d a t a i n t o t h e s t a c k f r a m e i n a c o n s i s t e n t m a n n e r . E a c h f u n c t i o n w h i c h e i t h e r c a l l s a n o t h e r f u n c t i o n o r m o d i f i e s a n o n v o l a t i l e r e g i s t e r m u s t c r e a t e a s t a c k f r a m e f r o m m e m o r y s e t a s i d e f o r u s e a s t h e r u n - t i m e s t a c k . I f a f u n c t i o n i s a l e a f f u n c t i o n ( m e a n i n g i t c a l l s n o o t h e r f u n c t i o n s ) , a n d d o e s n o t m o d i f y a n y n o n v o l a t i l e r e g i s t e r s , i t d o e s n o t n e e d t o c r e a t e a s t a c k f r a m e . T h e S P a l w a y s p o i n t s t o t h e l o w e s t a d d r e s s e d w o r d o f t h e c u r r e n t l y e x e c u t i n g f u n c t i o n s s t a c k f r a m e . E a c h n e w f r a m e i s c r e a t e d a d j a c e n t t o t h e m o s t r e c e n t l y a l l o c a t e d f r a m e i n t h e n e x t a v a i l a b l e l o w e r a d d r e s s e d m e m o r y . T h e s t a c k f r a m e i s c r e a t e d b y a f u n c t i o n ' s p r o l o g u e c o d e a n d d e s t r o y e d i n i t s e p i l o g u e c o d e . S t a c k f r a m e c r e a t i o n i s d o n e b y d e c r e m e n t i n g t h e S P j u s t o n c e , i n t h e f u n c t i o n p r o l o g u e , b y t h e t o t a l a m o u n t o f s p a c e r e q u i r e d b y t h a t f u n c t i o n . T o i n s u r e t h e S P u p d a t e i s a n a t o m i c o p e r a t i o n t h a t c a n n o t b e i n t e r r u p t e d , a s t o r e - w i t h - u p d a t e ( s t w u ) i n s t r u c t i o n i s u s e d . T h e p r o l o g u e w i l l a l s o s a v e a n y n o n v o l a t i l e r e g i s t e r s t h e f u n c t i o n u s e s i n t o t h e s t a c k f r a m e . B e l o w i s a n e x a m p l e f u n c t i o n p r o l o g u e . F u n c X : m f l r % r 0 ; G e t L i n k r e g i s t e r s t w u % r 1 , - 8 8 ( % r 1 ) ; S a v e B a c k c h a i n a n d m o v e S P s t w % r 0 , + 9 2 ( % r 1 ) ; S a v e L i n k r e g i s t e r s t m w % r 2 8 , + 7 2 ( % r 1 ) ; S a v e 4 n o n - v o l a t i l e s r 2 8 - r 3 1
4 T h e s t a c k f r a m e i s r e m o v e d i n t h e f u n c t i o n ' s e p i l o g u e b y a d d i n g t h e c u r r e n t s t a c k f r a m e s i z e t o t h e S P b e f o r e t h e f u n c t i o n r e t u r n s t o t h e c a l l i n g f u n c t i o n . T h e e p i l o g u e c o d e o f a f u n c t i o n r e s t o r e s a l l r e g i s t e r s s a v e d b y t h e p r o l o g u e , d e - a l l o c a t e s t h e c u r r e n t s t a c k f r a m e b y i n c r e m e n t i n g t h e S P , t h e n r e t u r n s t o t h e c a l l i n g f u n c t i o n . T h e f o l l o w i n g f u n c t i o n e p i l o g u e e x a m p l e c o r r e s p o n d s t o t h e a b o v e p r o l o g u e . l w z % r 0 , + 9 2 ( % r 1 ) ; G e t s a v e d L i n k r e g i s t e r m t l r % r 0 ; R e s t o r e L i n k r e g i s t e r l m w % r 2 8 , + 7 2 ( % r 1 ) ; R e s t o r e n o n - v o l a t i l e s a d d i % r 1 , % r 1 , 8 8 ; R e m o v e f r a m e f r o m s t a c k b l r ; R e t u r n t o c a l l i n g f u n c t i o n F i g u r e 1 i l l u s t r a t e s t h e s t a c k f r a m e c o n c e p t b y u s i n g a 2 - l e v e l d e e p , f u n c t i o n c a l l i n g e x a m p l e . A t t i m e 1 , f u n c t i o n A e x i s t s a n d c a l l s f u n c t i o n B . A t 2 , B ' s p r o l o g u e c o d e h a s e x e c u t e d a n d c r e a t e d B ' s f r a m e . A t 3 , B h a s c a l l e d C a n d C ' s p r o l o g u e c o d e h a s e x e c u t e d . A t 4 , f u n c t i o n C h a s t e r m i n a t e d a n d C ' s e p i l o g u e c o d e h a s d e s t r o y e d C ' s f r a m e b y i n c r e m e n t i n g t h e v a l u e i n t h e S P . F i g u r e 1 - S t a c k F r a m e c r e a t i o n a n d d e s t r u c t i o n T h e s t a c k f r a m e i s a l w a y s d o u b l e w o r d a l i g n e d ( o n 8 b y t e b o u n d a r i e s ) b y u s i n g p a d d i n g , i f n e c e s s a r y . F i g u r e 2 s h o w s t h e s t a c k f r a m e o r g a n i z a t i o n i n c l u d i n g a l l o p t i o n a l a r e a s . F P R S a v e A r e a ( o p t i o n a l , s i z e v a r i e s ) G P R S a v e A r e a ( o p t i o n a l , s i z e v a r i e s ) C R S a v e W o r d ( o p t i o n a l ) L o c a l V a r i a b l e s A r e a ( o p t i o n a l , s i z e v a r i e s ) F u n c t i o n P a r a m e t e r s A r e a ( o p t i o n a l , s i z e v a r i e s ) P a d d i n g t o a d j u s t s i z e t o m u l t i p l e o f 8 b y t e s ( o p t i o n a l , s i z e v a r i e s 1 - 7 b y t e s ) L R S a v e W o r d B a c k C h a i n W o r d F i g u r e 2 - E A B I S t a c k F r a m e A l l s t a c k f r a m e s h a v e a h e a d e r c o n s i s t i n g o f t w o f i e l d s - t h e B a c k C h a i n W o r d a n d t h e L i n k R e g i s t e r ( L R ) S a v e W o r d . T h e B a c k C h a i n W o r d c o n t a i n s t h e a d d r e s s o f t h e p r e v i o u s f r a m e s B a c k C h a i n W o r d f i e l d , t h e r e b y f o r m i n g a l i n k e d - l i s t o f s t a c k f r a m e s . T h e B a c k C h a i n W o r d i s a l w a y s l o c a t e d a t t h e l o w e s t H F r a m e H e a d e r F u n c t i o n A F u n c t i o n A F u n c t i o n A F u n c t i o n A F u n c t i o n B F u n c t i o n B F u n c t i o n B F u n c t i o n C S P S P S P S P 1 2 3 4 H i g h A d d r e s s e s s t a c k g r o w t h H i g h e s t a d d r e s s L o w e s t a d d r e s s
5 a d d r e s s o f t h e s t a c k f r a m e . T h e L R S a v e W o r d i s u s e d b y f u n c t i o n s t o s t o r e t h e c u r r e n t v a l u e o f t h e L i n k R e g i s t e r p r i o r t o m o d i f y i n g i t . T h e v a l u e i n t h e L R u p o n e n t r y i n t o a s u b r o u t i n e r e p r e s e n t s t h e r e t u r n a d d r e s s t o t h e c a l l i n g f u n c t i o n . I t i s l o c a t e d i n t h e w o r d i m m e d i a t e l y a b o v e t h e B a c k C h a i n W o r d f i e l d . T h e F u n c t i o n P a r a m e t e r A r e a i s o p t i o n a l a n d v a r i e s i n s i z e . I t c o n t a i n s a d d i t i o n a l f u n c t i o n a r g u m e n t s w h e n t h e r e a r e t o m a n y t o f i t i n t o t h e d e s i g n a t e d r e g i s t e r s R 3 - R 1 0 . I t i s l o c a t e d j u s t a b o v e t h e L R S a v e W o r d i n t h e c a l l e r s s t a c k f r a m e . T h e L o c a l V a r i a b l e s A r e a i s f o r f u n c t i o n s l o c a l v a r i a b l e s w h e n t h e r e a r e m o r e t h a n c a n b e c o n t a i n e d i n t h e a v a i l a b l e v o l a t i l e r e g i s t e r s . I f a f u n c t i o n m o d i f i e s a n y o f t h e n o n v o l a t i l e C o n d i t i o n R e g i s t e r ( C R ) f i e l d s i t m u s t s a v e t h e e n t i r e C R i n t h e C R S a v e A r e a . T h e G e n e r a l P u r p o s e R e g i s t e r ( G P R ) S a v e A r e a i s o p t i o n a l a n d v a r i e s i n s i z e . W h e n s a v i n g a n y G P R , a l l t h e G P R s f r o m t h e l o w e s t t o b e s a v e d u p t h r o u g h R 3 1 , i n c l u s i v e , a r e s a v e d . F o r e x a m p l e , i f a f u n c t i o n i s m o d i f y i n g R 1 7 , i t m u s t c r e a t e a s t a c k f r a m e l a r g e e n o u g h t o c o n t a i n R 1 7 t h r o u g h R 3 1 i n i t s G P R S a v e A r e a . T h e s a m e c o n v e n t i o n s a p p l y f o r t h e F l o a t i n g p o i n t R e g i s t e r S a v e A r e a f o r s a v i n g t h e F P R n o n v o l a t i l e r e g i s t e r s . C o d e f o r i m p l e m e n t a t i o n s o f t h e P o w e r P C t h a t d o n o t h a v e f l o a t i n g - p o i n t h a r d w a r e w o u l d n o t c r e a t e t h e F P S a v e A r e a a s t h e r e a r e n o F P R s t o s a v e . 6 . P a r a m e t e r P a s s i n g F o r P o w e r P C p r o c e s s o r s i t i s m o r e e f f i c i e n t t o p a s s a r g u m e n t s i n r e g i s t e r s t h a n u s i n g m e m o r y . U p t o e i g h t s c a l a r v a l u e s a r e p a s s e d b y u s i n g R 3 t h r o u g h R 1 0 a n d r e t u r n v a l u e s a r e p a s s e d b a c k i n R 3 a n d R 4 . U p t o e i g h t a r g u m e n t s o f t h e f l o a t i n g p o i n t d a t a t y p e c a n b e p a s s e d u s i n g F 1 t o F 8 a n d F 1 i s u s e d t o r e t u r n a f l o a t i n g - p o i n t v a l u e . I f t h e r e a r e m o r e a r g u m e n t s t h a n c a n b e p a s s e d u s i n g t h e r e g i s t e r s , s p a c e f o r t h e a d d i t i o n a l a r g u m e n t s i s a l l o c a t e d f o r t h e m i n t h e s t a c k f r a m e ' s F u n c t i o n P a r a m e t e r s A r e a . L i k e w i s e , r e t u r n e d v a l u e s t h a t w i l l n o t f i t i n t o R 3 a n d R 4 ( o r F 1 ) a r e a l s o p a s s e d b y u s i n g t h e F u n c t i o n P a r a m e t e r s A r e a . T h e f o l l o w i n g C c o d e f r a g m e n t i l l u s t r a t e s t h e c o n c e p t . # i n c l u d e " s t d i o . h " v o i d f u n c 1 ( i n t ) ; i n t v a r 1 ; m a i n ( ) { v a r 1 = 4 ; f u n c 1 ( v a r 1 ) ; } v o i d f u n c 1 ( i n t a r g 1 ) { p r i n t f ( " f u n c 1 - a r g 1 v a l u e : % d \ n " , a r g 1 ) ; } T o i m p l e m e n t t h e C l a n g u a g e s t a t e m e n t s t h e f o l l o w i n g a s s e m b l y l a n g u a g e i n s t r u c t i o n s i l l u s t r a t e l o a d i n g a n d p a s s i n g t h e v a l u e i n v a r 1 t o f u n c 1 . A f t e r v a r 1 i s s e t t o 4 , R 3 i s l o a d e d w i t h t h e v a l u e i n v a r 1 i n o r d e r t o p a s s i t a s a n a r g u m e n t . T h e l w z i n s t r u c t i o n i s u s e d t o l o a d R 3 . N o t i c e t h a t a f t e r t h e i n s t r u c t i o n s t o s e t v a r 1 = 4 , R 1 2 c o n t a i n s t h e h i g h o r d e r 1 6 - b i t s o f t h e a d d r e s s o f v a r 1 a n d i s t h e r e f o r e u s e d b y t h e l w z i n s t r u c t i o n . R 3 i s u s e d s i n c e i t i s t h e f i r s t a v a i l a b l e p a r a m e t e r p a s s i n g r e g i s t e r f o r i n t e g e r v a l u e s . v a r 1 = 4 ; l i % r 1 1 , 4 a d d i s % r 1 2 , % r 0 , v a r 1 @ h a s t w % r 1 1 , v a r 1 @ l ( % r 1 2 ) f u n c 1 ( v a r 1 ) ; l w z % r 3 , v a r 1 @ l ( % r 1 2 ) b l f u n c 1
6 7 . S m a l l D a t a A r e a s T h e E A B I h a s a c o n s t r u c t k n o w n a s t h e S m a l l D a t a A r e a ( S D A ) d e s i g n e d t o t a k e a d v a n t a g e o f t h e P o w e r P C b a s e p l u s d i s p l a c e m e n t a d d r e s s i n g m o d e . T h e d i s p l a c e m e n t i s a s i g n e d 1 6 - b i t v a l u e , t h e r e f o r e a t o t a l o f 6 4 k ( p l u s o r m i n u s a 3 2 K o f f s e t ) b y t e s m a y b e a d d r e s s e d w i t h o u t c h a n g i n g t h e v a l u e i n a b a s e r e g i s t e r . T h e 1 6 - b i t d i s p l a c e m e n t f i t s , a l o n g w i t h t h e i n s t r u c t i o n o p - c o d e , i n t o a s i n g l e i n s t r u c t i o n w o r d . T h i s f a c t m e a n s i t i s a m o r e m e m o r y e f f i c i e n t m e t h o d o f a c c e s s i n g a v a r i a b l e t h a n r e f e r e n c i n g i t b y u s i n g a f u l l 3 2 - b i t a d d r e s s . T h a t ' s b e c a u s e o n l y o n e i n s t r u c t i o n w o r d i s r e q u i r e d i n s t e a d o f t h e t w o n e e d e d t o a c c e s s i t a s a 3 2 - b i t a d d r e s s . S D A s a r e u s e f u l f o r g l o b a l a n d s t a t i c v a r i a b l e s a n d c o n s t a n t s . T h e r e a r e t w o S D A s , o n e f o r r e a d - w r i t e v a r i a b l e s a n d a s e c o n d f o r r e a d - o n l y v a r i a b l e s . T h e s m a l l d a t a a r e a s a r e r e f e r e n c e d b y a b a s e r e g i s t e r l o a d e d o n c e , w h e n t h e C r u n t i m e e n v i r o n m e n t i s i n i t i a l i z e d . R 2 i s t h e b a s e f o r t h e r e a d - o n l y ( c o n s t t y p e ) s m a l l d a t a a r e a , a n d R 1 3 i s t h e b a s e f o r t h e r e a d - w r i t e ( n o n - c o n s t t y p e ) s m a l l d a t a a r e a . V a r i a b l e s f o r t h e R 1 3 b a s e d r e a d - w r i t e S D A a r e c o n t a i n e d i n o n e o f t w o E L F s e g m e n t s , e i t h e r . s d a t a , o r . s b s s . F o r i n i t i a l i z e d r e a d - w r i t e v a r i a b l e s , . s d a t a i s u s e d a n d . s b s s i s u s e d f o r n o n - i n i t i a l i z e d r e a d - w r i t e v a r i a b l e s . T y p i c a l l y t h e . s b s s v a r i a b l e s a r e g i v e n a d e f a u l t i n i t i a l v a l u e o f 0 a t r u n - t i m e . S i n c e t h i s S D A i s r e a d - w r i t e i t m u s t b e l o c a t e d i n R A M . H e r e i s a n e x a m p l e i n s t r u c t i o n t o f e t c h t h e v a l u e o f a r e a d - w r i t e s m a l l d a t a a r e a v a r i a b l e . I t i s l o c a t e d a t a n o f f s e t o f 3 2 b y t e s g r e a t e r t h a n t h e a n c h o r v a l u e : l w z r 2 9 , 3 2 ( r 1 3 ) V a r i a b l e s f o r t h e R 2 b a s e d r e a d - o n l y S D A a r e c o n t a i n e d i n o n e o f t h e s e g m e n t s . s d a t a 2 a n d . s b s s 2 . F o r i n i t i a l i z e d r e a d - o n l y v a r i a b l e s , . s d a t a 2 i s u s e d . F o r n o n - i n i t i a l i z e d v a r i a b l e s , . s b s s 2 i s u s e d . T y p i c a l l y , n o n - i n i t i a l i z e d v a r i a b l e s a r e g i v e n a d e f a u l t i n i t i a l v a l u e o f 0 a t r u n - t i m e . S i n c e t h e S D A i s r e a d - o n l y , i t m a y b e l o c a t e d i n R O M a s l o n g a s i n i t i a l i z a t i o n o f t h e . s b s s 2 s e g m e n t c o n t a i n e d v a r i a b l e s i s n o t r e q u i r e d . T h e P o w e r P C a r c h i t e c t u r e t r e a t s R 0 a s a v a l u e o f z e r o ( n o t t h e c o n t e n t o f R 0 ) w h e n u s e d a s t h e b a s e r e g i s t e r f o r t h e b a s e + d i s p l a c e m e n t a d d r e s s i n g m o d e f o r s o m e i n s t r u c t i o n s . T h e s e i n s t r u c t i o n s i n c l u d e t h e l o a d , s t o r e , a n d v a r i o u s c a c h e m a n a g e m e n t i n s t r u c t i o n s . T h e r e f o r e , R 0 a c t s a s a n a n c h o r f o r a t h i r d , i m p l i c i t , s m a l l d a t a a r e a w h i c h i n c l u d e s t h e l o w e s t a n d h i g h e s t 3 2 k b y t e s o f t h e p r o c e s s o r m e m o r y a d d r e s s s p a c e . W i t h t h e I B M H i g h C / C + + c o m p i l e r , p l a c e m e n t o f v a r i a b l e s i n t o S D A s i s e n a b l e d u s i n g t h e p r a g m a P u s h _ s m a l l _ d a t a . B y d e f a u l t , g l o b a l v a r i a b l e s a r e n o t p l a c e d i n t o a n S D A . T h e p r a g m a c a n b e i n v o k e d b y u s i n g a c o m p i l e r o p t i o n . T h e o p t i o n " - H p r a g m a = P u s h _ s m a l l _ d a t a ( 4 ; 0 ) " i n s t r u c t s t h a t r e a d - w r i t e v a r i a b l e s t h a t a r e 4 b y t e s o r l e s s i n s i z e s h o u l d b e s t o r e d i n t h e r e a d - w r i t e S D A . I t a l s o i n s t r u c t s t h a t n o r e a d - o n l y v a r i a b l e s a r e t o b e p l a c e d i n t o t h e r e a d - o n l y S D A b y s p e c i f y i n g t h e v a l u e 0 , f o r t h e s e c o n d a r g u m e n t . T h e f o l l o w i n g C p r o g r a m f r a g m e n t w i l l h e l p i l l u s t r a t e t h e m a c h i n e i n s t r u c t i o n s u s e d t o a c c e s s a g l o b a l v a r i a b l e . i n t v a r 1 ; m a i n ( ) { v a r 1 = 4 ; f u n c 1 ( v a r 1 ) ; }
7 B e l o w a r e t h e a s s e m b l y l a n g u a g e i n s t r u c t i o n s g e n e r a t e d b y t h e c o m p i l e r f o r w r i t i n g t h e v a l u e 4 t o t h e g l o b a l v a r i a b l e v a r 1 , w h e n i t i s n o t i n a n S D A . T h r e e i n s t r u c t i o n s a r e r e q u i r e d t o s t o r e a v a l u e i n t o v a r 1 . l i % r 1 1 , 4 a d d i s % r 1 2 , % r 0 , v a r 1 @ h a s t w % r 1 1 , v a r 1 @ l ( % r 1 2 ) 1 . l i g e t s t h e v a l u e t o b e s e t i n t o r e g i s t e r R 1 1 . 2 . a d d i s i s u s e d t o l o a d R 1 2 w i t h t h e h i g h - o r d e r h a l f w o r d o f t h e a d d r e s s o f v a r 1 . 3 . s t w u s e s t h e b a s e + d i s p l a c e m e n t a d d r e s s i n g m o d e . T h e d i s p l a c e m e n t , f r o m t h e b a s e a d d r e s s i n R 1 2 , i s t h e l o w h a l f w o r d o f v a r 1 ' s a d d r e s s . W h e n i n t h e r e a d - w r i t e S D A , t h e r e s u l t i n g t w o i n s t r u c t i o n s f o r w r i t i n g a v a l u e t o v a r 1 a r e : l i % r 1 2 , 4 s t w % r 1 2 , v a r 1 @ s d a x r ( % r 1 3 ) N o t e t h a t t o u s e a n y S D A s , y o u n e e d t h e C r u n t i m e e n v i r o n m e n t c r e a t i o n c o d e t o i n i t i a l i z e t h e s m a l l d a t a a r e a a n c h o r r e g i s t e r s . F o r t h e I B M e v a l u a t i o n k i t u s e r , y o u c a n d o t h i s b y a d d i n g t h e f o l l o w i n g c o d e t o t h e . / s a m p l e s / b o o t l l i b . s r o u t i n e r i g h t b e f o r e t h e j u m p t o t h e _ k e r n e l _ e n t r y r o u t i n e . T h e m a c r o s _ S D A _ B A S E _ a n d _ S D A 2 _ B A S E _ a r e d e f i n e d a u t o m a t i c a l l y b y t h e l i n k e r i f t h e a s s o c i a t e d S D A s a r e u s e d . F o r _ S D A _ B A S E _ , t h e v a l u e i s t h e a d d r e s s t o w h i c h a l l d a t a i n t h e . s d a t a a n d . s b s s s e c t i o n s c a n b e a d d r e s s e d u s i n g a 1 6 - b i t s i g n e d o f f s e t . I f a n S D A i s n o t u s e d t h e a s s o c i a t e d m a c r o ' s v a l u e w i l l b e z e r o . ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! I N I T I A L I Z A T I O N O F B A S E R E G I S T E R S F O R S M A L L D A T A A R E A S : ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * l i s % r 2 , _ S D A 2 _ B A S E _ @ h a ! r 2 i s t h e r e a d - o n l y S D A a n c h o r a d d i % r 2 , % r 2 , _ S D A 2 _ B A S E _ @ l l i s % r 1 3 , _ S D A _ B A S E _ @ h a ! r 1 3 i s t h e r e a d - w r i t e S D A a n c h o r a d d i % r 1 3 , % r 1 3 , _ S D A _ B A S E _ @ l F o r c o m p a r i s o n , T a b l e 4 s h o w s t h e r e s u l t i n g c h a n g e s i n c o d e s i z e a n d e x e c u t i o n s p e e d f o r a D h r y s t o n e b e n c h m a r k . T h e c o m p i l e r u s e d w a s t h e I B M H i g h C / C + + c o m p i l e r v 3 . 6 1 a n d e x e c u t i o n t o o k p l a c e o n t h e I B M P o w e r P C 4 0 1 G F e v a l u a t i o n b o a r d . R o w 1 s h o w s t h e r e s u l t s o f u s i n g o p t i o n s f o r p u r e s p e e d ( - O 6 ) a n d a l l o w i n g i n l i n i n g o f f u n c t i o n s c a l l e d u p t o 1 5 0 t i m e s ( - H i c = 1 5 0 ) t h a t h a v e f e w e r t h a n 1 5 0 n o d e s ( - H i t = 1 5 0 ) . R o w 2 a d d s t h e u s e o f S D A s f o r a n y r e a d - w r i t e v a r i a b l e w h o s e d a t a t y p e h a s a s i z e o f 8 b y t e s o r f e w e r , a n d a n y r e a d - o n l y v a r i a b l e w h o s e d a t a t y p e s i z e i s o f 4 b y t e s o r s m a l l e r . C o m p i l e o p t i o n s d h r y _ 1 . o c o d e s i z e d h r y _ 2 c o d e s i z e b e n c h m a r k r e s u l t - O 6 - H i c = 1 5 0 - H i t = 1 5 0 2 3 0 0 b y t e s 5 7 2 b y t e s 8 8 K D h r y / s e c - O 6 - H i c = 1 5 0 - H i t = 1 5 0 - H p r a g m a = P u s h _ s m a l l _ d a t a ( 8 ; 4 ) 1 9 8 8 b y t e s 5 5 2 b y t e s 7 7 k D h r y / s e c T a b l e 4 - S m a l l d a t a a r e a e f f e c t s o n D h r y s t o n e a p p l i c a t i o n
• • • • • 8 8 . C o n c l u s i o n T h e E A B I p r o v i d e s f o r v e n d o r i n d e p e n d e n t t o o l i n t e r o p e r a b i l i t y v i a t h e E L F / D W A R F f i l e f o r m a t s t a n d a r d s . T h i s a l l o w d e v e l o p e r s t o m i x a n d m a t c h v a r i o u s E A B I c o m p l i a n t c o m p o n e n t s t o c r e a t e a s o f t w a r e d e v e l o p m e n t t o o l c h a i n f o r t h e i r n e e d s . I n a d d i t i o n , t h e E A B I s t a n d a r d s o n r e g i s t e r u s a g e a n d p a r a m e t e r p a s s i n g a l s o a l l o w i n d e p e n d e n t l y d e v e l o p e d c o d e t o b e r e u s e d w i t h o u t m o d i f i c a t i o n . 9 . R e f e r e n c e s T h e f o l l o w i n g r e f e r e n c e s a r e p r e s e n t e d i n a s u g g e s t e d r e a d i n g o r d e r p r o g r e s s i n g f r o m a c o m p r e h e n s i v e o v e r v i e w t h r o u g h t h e s t a n d a r d s d o c u m e n t s f r o m m o s t P o w e r P C s p e c i f i c t o m o s t g e n e r a l . P r o g r a m m i n g P o w e r P C E m b e d d e d A p p l i c a t i o n s , E m b e d d e d S y s t e m s P r o g r a m m i n g m a g a z i n e , D e c e m b e r 1 9 9 5 . B a c k i s s u e i n f o r m a t i o n a v a i l a b l e f r o m e m b e d d e d @ h a l l d a t a . c o m P o w e r P C E m b e d d e d A p p l i c a t i o n B i n a r y I n t e r f a c e , V e r s i o n 1 . 0 , I B M a n d M o t o r o l a , J a n u a r y 1 0 , 1 9 9 5 . A v a i l a b l e f r o m E S O F T A a t h t t p : / / w w w . e s o f t a . c o m / p d f s / p p c e a b i . p d f S y s t e m V A p p l i c a t i o n B i n a r y I n t e r f a c e , P o w e r P C P r o c e s s o r S u p p l e m e n t , S u n M i c r o s y s t e m s a n d I B M , S e p t e m b e r 1 9 9 5 . A v a i l a b l e f r o m E S O F T A a t h t t p : / / w w w . e s o f t a . c o m / p d f s / S V R 4 a b i p p c . p d f S y s t e m V A p p l i c a t i o n B i n a r y I n t e r f a c e , T h i r d E d i t i o n , U N I X S y s t e m s L a b o r a t o r i e s , 1 9 9 4 D W A R F D e b u g g i n g I n f o r m a t i o n F o r m a t , R e v i s i o n 1 . 1 . 0 , U N I X I n t e r n a t i o n a l O c t o b e r 6 , 1 9 9 2 . A v a i l a b l e f r o m E S O F T A a t h t t p : / / w w w . e s o f t a . c o m / p d f s / d w a r f . v 1 . 1 . 0 . p d f © I n t e r n a t i o n a l B u s i n e s s M a c h i n e s C o r p o r a t i o n , 1 9 9 8 A l l R i g h t s R e s e r v e d * I n d i c a t e s a t r a d e m a r k o r r e g i s t e r e d t r a d e m a r k o f t h e I n t e r n a t i o n a l B u s i n e s s M a c h i n e s C o r p o r a t i o n . * * A l l o t h e r p r o d u c t s a n d c o m p a n y n a m e s a r e t r a d e m a r k s o r r e g i s t e r e d t r a d e m a r k s o f t h e i r r e s p e c t i v e h o l d e r s . I B M a n d I B M l o g o a r e r e g i s t e r e d t r a d e m a r k s o f t h e I n t e r n a t i o n a l B u s i n e s s M a c h i n e s C o r p o r a t i o n . I B M w i l l c o n t i n u e t o e n h a n c e p r o d u c t s a n d s e r v i c e s a s n e w t e c h n o l o g i e s e m e r g e . T h e r e f o r e , I B M r e s e r v e s t h e r i g h t t o m a k e c h a n g e s t o i t s p r o d u c t s , o t h e r p r o d u c t i n f o r m a t i o n , a n d t h i s p u b l i c a t i o n w i t h o u t p r i o r n o t i c e . P l e a s e c o n t a c t y o u r l o c a l I B M M i c r o e l e c t r o n i c s r e p r e s e n t a t i v e o n s p e c i f i c s t a n d a r d c o n f i g u r a t i o n s a n d o p t i o n s . I B M a s s u m e s n o r e s p o n s i b i l i t y o r l i a b i l i t y f o r a n y u s e o f t h e i n f o r m a t i o n c o n t a i n e d h e r e i n . N o t h i n g i n t h i s d o c u m e n t s h a l l o p e r a t e a s a n e x p r e s s o r i m p l i e d l i c e n s e o r i n d e m n i t y u n d e r t h e i n t e l l e c t u a l p r o p e r t y r i g h t s o f I B M o r t h i r d p a r t i e s . N O W A R R A N T I E S O F A N Y K I N D , I N C L U D I N G B U T N O T L I M I T E D T O T H E I M P L I E D W A R R A N T I E S O F M E R C H A N T A B I L I T Y O R F I T N E S S F O R A P A R T I C U L A R P U R P O S E A R E O F F E R E D I N T H I S D O C U M E N T .
分享到:
收藏