2005-10-31 02:08:03 +03:00
/ * Copyright 1 9 9 5 , 1 9 9 6 , 1 9 9 8 , 1 9 9 9 , 2 0 0 0 , 2 0 0 3 , 2 0 0 4 , 2 0 0 5
Free S o f t w a r e F o u n d a t i o n , I n c .
This f i l e i s f r e e s o f t w a r e ; you can redistribute it and/or modify it
under t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y t h e
Free S o f t w a r e F o u n d a t i o n ; either version 2, or (at your option) any
later v e r s i o n .
In a d d i t i o n t o t h e p e r m i s s i o n s i n t h e G N U G e n e r a l P u b l i c L i c e n s e , t h e
Free S o f t w a r e F o u n d a t i o n g i v e s y o u u n l i m i t e d p e r m i s s i o n t o l i n k t h e
compiled v e r s i o n o f t h i s f i l e i n t o c o m b i n a t i o n s w i t h o t h e r p r o g r a m s ,
and t o d i s t r i b u t e t h o s e c o m b i n a t i o n s w i t h o u t a n y r e s t r i c t i o n c o m i n g
from t h e u s e o f t h i s f i l e . ( T h e G e n e r a l P u b l i c L i c e n s e r e s t r i c t i o n s
do a p p l y i n o t h e r r e s p e c t s ; for example, they cover modification of
the f i l e , a n d d i s t r i b u t i o n w h e n n o t l i n k e d i n t o a c o m b i n e
executable. )
This f i l e i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , b u t
WITHOUT A N Y W A R R A N T Y ; without even the implied warranty of
MERCHANTABILITY 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 . S e e t h e G N U
General P u b l i c L i c e n s e f o r m o r e d e t a i l s .
You s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e
along w i t h t h i s p r o g r a m ; see the file COPYING. If not, write to
the F r e e S o f t w a r e F o u n d a t i o n , 5 1 F r a n k l i n S t r e e t , F i f t h F l o o r ,
Boston, M A 0 2 1 1 0 - 1 3 0 1 , U S A . * /
# include < l i n u x / l i n k a g e . h >
# ifdef _ _ A R M E B _ _
# define a l r1
# define a h r0
# else
# define a l r0
# define a h r1
# endif
ENTRY( _ _ a s h r d i 3 )
2006-01-14 19:18:29 +03:00
ENTRY( _ _ a e a b i _ l a s r )
2005-10-31 02:08:03 +03:00
subs r3 , r2 , #32
rsb i p , r2 , #32
movmi a l , a l , l s r r2
movpl a l , a h , a s r r3
2009-07-24 15:32:57 +04:00
ARM( o r r m i a l , a l , a h , l s l i p )
THUMB( l s l m i r3 , a h , i p )
THUMB( o r r m i a l , a l , r3 )
2005-10-31 02:08:03 +03:00
mov a h , a h , a s r r2
mov p c , l r
2008-08-28 14:22:32 +04:00
ENDPROC( _ _ a s h r d i 3 )
ENDPROC( _ _ a e a b i _ l a s r )