2005-04-17 02:20:36 +04:00
/ * Copyright ( C ) 1 9 8 9 , 1 9 9 2 , 1 9 9 3 , 1 9 9 4 , 1 9 9 5 F r e e 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 p a r t o f G N U C C .
GNU C C i s f r e e s o f t w a r e ; you can redistribute it and/or modify
it u n d e r 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
the F r e e 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 l a t e r v e r s i o n .
GNU C C 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 ,
but W I T H O U T 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
GNU G e n e r a l 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 G N U C C ; 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 9 T e m p l e P l a c e - S u i t e 3 3 0 ,
Boston, M A 0 2 1 1 1 - 1 3 0 7 , U S A . * /
.text
.align 4
.globl __divdi3
__divdi3 :
save % s p ,- 1 0 4 ,% s p
cmp % i 0 ,0
bge . L L 4 0
mov 0 ,% l 4
mov - 1 ,% l 4
sub % g 0 ,% i 1 ,% o 0
mov % o 0 ,% o 5
subcc % g 0 ,% o 0 ,% g 0
sub % g 0 ,% i 0 ,% o 0
subx % o 0 ,0 ,% o 4
mov % o 4 ,% i 0
mov % o 5 ,% i 1
.LL40 :
cmp % i 2 ,0
bge . L L 8 4
mov % i 3 ,% o 4
xnor % g 0 ,% l 4 ,% l 4
sub % g 0 ,% i 3 ,% o 0
mov % o 0 ,% o 3
subcc % g 0 ,% o 0 ,% g 0
sub % g 0 ,% i 2 ,% o 0
subx % o 0 ,0 ,% o 2
mov % o 2 ,% i 2
mov % o 3 ,% i 3
mov % i 3 ,% o 4
.LL84 :
cmp % i 2 ,0
bne . L L 4 5
mov % i 1 ,% i 3
cmp % o 4 ,% i 0
bleu . L L 4 6
mov % i 3 ,% o 1
mov 3 2 ,% g 1
subcc % i 0 ,% o 4 ,% g 0
1 : bcs 5 f
addxcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
sub % i 0 ,% o 4 ,% i 0 ! t h i s k i l l s m s b o f n
addx % i 0 ,% i 0 ,% i 0 ! s o t h i s c a n n o t g i v e c a r r y
subcc % g 1 ,1 ,% g 1
2 : bne 1 b
subcc % i 0 ,% o 4 ,% g 0
bcs 3 f
addxcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
b 3 f
sub % i 0 ,% o 4 ,% i 0 ! t h i s k i l l s m s b o f n
4 : sub % i 0 ,% o 4 ,% i 0
5 : addxcc % i 0 ,% i 0 ,% i 0
bcc 2 b
subcc % g 1 ,1 ,% g 1
! Got c a r r y f r o m n . S u b t r a c t n e x t s t e p t o c a n c e l t h i s c a r r y .
bne 4 b
addcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a 0 - b i t i n l s b
sub % i 0 ,% o 4 ,% i 0
3 : xnor % o 1 ,0 ,% o 1
b . L L 5 0
mov 0 ,% o 2
.LL46 :
cmp % o 4 ,0
bne . L L 8 5
mov % i 0 ,% o 2
mov 1 ,% o 0
mov 0 ,% o 1
2012-05-15 22:23:01 +04:00
wr % g 0 , 0 , % y
udiv % o 0 , % o 1 , % o 0
2005-04-17 02:20:36 +04:00
mov % o 0 ,% o 4
mov % i 0 ,% o 2
.LL85 :
mov 0 ,% g 3
mov 3 2 ,% g 1
subcc % g 3 ,% o 4 ,% g 0
1 : bcs 5 f
addxcc % o 2 ,% o 2 ,% o 2 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
sub % g 3 ,% o 4 ,% g 3 ! t h i s k i l l s m s b o f n
addx % g 3 ,% g 3 ,% g 3 ! s o t h i s c a n n o t g i v e c a r r y
subcc % g 1 ,1 ,% g 1
2 : bne 1 b
subcc % g 3 ,% o 4 ,% g 0
bcs 3 f
addxcc % o 2 ,% o 2 ,% o 2 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
b 3 f
sub % g 3 ,% o 4 ,% g 3 ! t h i s k i l l s m s b o f n
4 : sub % g 3 ,% o 4 ,% g 3
5 : addxcc % g 3 ,% g 3 ,% g 3
bcc 2 b
subcc % g 1 ,1 ,% g 1
! Got c a r r y f r o m n . S u b t r a c t n e x t s t e p t o c a n c e l t h i s c a r r y .
bne 4 b
addcc % o 2 ,% o 2 ,% o 2 ! s h i f t n 1 n 0 a n d a 0 - b i t i n l s b
sub % g 3 ,% o 4 ,% g 3
3 : xnor % o 2 ,0 ,% o 2
mov % g 3 ,% i 0
mov % i 3 ,% o 1
mov 3 2 ,% g 1
subcc % i 0 ,% o 4 ,% g 0
1 : bcs 5 f
addxcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
sub % i 0 ,% o 4 ,% i 0 ! t h i s k i l l s m s b o f n
addx % i 0 ,% i 0 ,% i 0 ! s o t h i s c a n n o t g i v e c a r r y
subcc % g 1 ,1 ,% g 1
2 : bne 1 b
subcc % i 0 ,% o 4 ,% g 0
bcs 3 f
addxcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
b 3 f
sub % i 0 ,% o 4 ,% i 0 ! t h i s k i l l s m s b o f n
4 : sub % i 0 ,% o 4 ,% i 0
5 : addxcc % i 0 ,% i 0 ,% i 0
bcc 2 b
subcc % g 1 ,1 ,% g 1
! Got c a r r y f r o m n . S u b t r a c t n e x t s t e p t o c a n c e l t h i s c a r r y .
bne 4 b
addcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a 0 - b i t i n l s b
sub % i 0 ,% o 4 ,% i 0
3 : xnor % o 1 ,0 ,% o 1
b . L L 8 6
mov % o 1 ,% l 1
.LL45 :
cmp % i 2 ,% i 0
bleu . L L 5 1
sethi % h i ( 6 5 5 3 5 ) ,% o 0
b . L L 7 8
mov 0 ,% o 1
.LL51 :
or % o 0 ,% l o ( 6 5 5 3 5 ) ,% o 0
cmp % i 2 ,% o 0
bgu . L L 5 8
mov % i 2 ,% o 1
cmp % i 2 ,2 5 6
addx % g 0 ,- 1 ,% o 0
b . L L 6 4
and % o 0 ,8 ,% o 2
.LL58 :
sethi % h i ( 1 6 7 7 7 2 1 5 ) ,% o 0
or % o 0 ,% l o ( 1 6 7 7 7 2 1 5 ) ,% o 0
cmp % i 2 ,% o 0
bgu . L L 6 4
mov 2 4 ,% o 2
mov 1 6 ,% o 2
.LL64 :
srl % o 1 ,% o 2 ,% o 0
sethi % h i ( _ _ c l z _ t a b ) ,% o 1
or % o 1 ,% l o ( _ _ c l z _ t a b ) ,% o 1
ldub [ % o 0 + % o 1 ] ,% o 0
add % o 0 ,% o 2 ,% o 0
mov 3 2 ,% o 1
subcc % o 1 ,% o 0 ,% o 3
bne,a . L L 7 2
sub % o 1 ,% o 3 ,% o 1
cmp % i 0 ,% i 2
bgu . L L 7 4
cmp % i 3 ,% o 4
blu . L L 7 8
mov 0 ,% o 1
.LL74 :
b . L L 7 8
mov 1 ,% o 1
.LL72 :
sll % i 2 ,% o 3 ,% o 2
srl % o 4 ,% o 1 ,% o 0
or % o 2 ,% o 0 ,% i 2
sll % o 4 ,% o 3 ,% o 4
srl % i 0 ,% o 1 ,% o 2
sll % i 0 ,% o 3 ,% o 0
srl % i 3 ,% o 1 ,% o 1
or % o 0 ,% o 1 ,% i 0
sll % i 3 ,% o 3 ,% i 3
mov % i 0 ,% o 1
mov 3 2 ,% g 1
subcc % o 2 ,% i 2 ,% g 0
1 : bcs 5 f
addxcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
sub % o 2 ,% i 2 ,% o 2 ! t h i s k i l l s m s b o f n
addx % o 2 ,% o 2 ,% o 2 ! s o t h i s c a n n o t g i v e c a r r y
subcc % g 1 ,1 ,% g 1
2 : bne 1 b
subcc % o 2 ,% i 2 ,% g 0
bcs 3 f
addxcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a q - b i t i n l s b
b 3 f
sub % o 2 ,% i 2 ,% o 2 ! t h i s k i l l s m s b o f n
4 : sub % o 2 ,% i 2 ,% o 2
5 : addxcc % o 2 ,% o 2 ,% o 2
bcc 2 b
subcc % g 1 ,1 ,% g 1
! Got c a r r y f r o m n . S u b t r a c t n e x t s t e p t o c a n c e l t h i s c a r r y .
bne 4 b
addcc % o 1 ,% o 1 ,% o 1 ! s h i f t n 1 n 0 a n d a 0 - b i t i n l s b
sub % o 2 ,% i 2 ,% o 2
3 : xnor % o 1 ,0 ,% o 1
mov % o 2 ,% i 0
wr % g 0 ,% o 1 ,% y ! S P A R C h a s 0 - 3 d e l a y i n s n a f t e r a w r
sra % o 4 ,3 1 ,% g 2 ! D o n o t m o v e t h i s i n s n
and % o 1 ,% g 2 ,% g 2 ! D o n o t m o v e t h i s i n s n
andcc % g 0 ,0 ,% g 1 ! D o n o t m o v e t h i s i n s n
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,% o 4 ,% g 1
mulscc % g 1 ,0 ,% g 1
add % g 1 ,% g 2 ,% o 0
rd % y ,% o 2
cmp % o 0 ,% i 0
bgu,a . L L 7 8
add % o 1 ,- 1 ,% o 1
bne,a . L L 5 0
mov 0 ,% o 2
cmp % o 2 ,% i 3
bleu . L L 5 0
mov 0 ,% o 2
add % o 1 ,- 1 ,% o 1
.LL78 :
mov 0 ,% o 2
.LL50 :
mov % o 1 ,% l 1
.LL86 :
mov % o 2 ,% l 0
mov % l 0 ,% i 0
mov % l 1 ,% i 1
cmp % l 4 ,0
be . L L 8 1
sub % g 0 ,% i 1 ,% o 0
mov % o 0 ,% l 3
subcc % g 0 ,% o 0 ,% g 0
sub % g 0 ,% i 0 ,% o 0
subx % o 0 ,0 ,% l 2
mov % l 2 ,% i 0
mov % l 3 ,% i 1
.LL81 :
ret
restore