Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
02689e18
Commit
02689e18
authored
Aug 23, 2000
by
Nick Clifton
Committed by
Nick Clifton
Aug 23, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace upper case condition code strings with lower case.
From-SVN: r35920
parent
64a7723d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
82 additions
and
79 deletions
+82
-79
gcc/ChangeLog
+3
-0
gcc/config/arm/lib1funcs.asm
+79
-79
No files found.
gcc/ChangeLog
View file @
02689e18
2000-08-23 Nick Clifton <nickc@redhat.com>
* config/arm/lib1funcs.asm: Replace upper case condition codes
with lower case versions.
* config/arm/arm.h (STRUCT_VALUE): Define.
(STRUCT_VALUE_REGNUM): Delete.
...
...
gcc/config/arm/lib1funcs.asm
View file @
02689e18
...
...
@@ -171,19 +171,19 @@ Loop1:
@
division
loop
.
Continue
shifting
until
the
divisor
is
@
larger
than
the
dividend
.
cmp
divisor
,
#
0x10000000
cmp
LO
divisor
,
dividend
mov
LO
divisor
,
divisor
,
lsl
#
4
mov
LO
curbit
,
curbit
,
lsl
#
4
b
LO
Loop1
cmp
lo
divisor
,
dividend
mov
lo
divisor
,
divisor
,
lsl
#
4
mov
lo
curbit
,
curbit
,
lsl
#
4
b
lo
Loop1
Lbignum
:
@
For
very
big
divisors
,
we
must
shift
it
a
bit
at
a
time
,
or
@
we
will
be
in
danger
of
overflowing
.
cmp
divisor
,
#
0x80000000
cmp
LO
divisor
,
dividend
mov
LO
divisor
,
divisor
,
lsl
#
1
mov
LO
curbit
,
curbit
,
lsl
#
1
b
LO
Lbignum
cmp
lo
divisor
,
dividend
mov
lo
divisor
,
divisor
,
lsl
#
1
mov
lo
curbit
,
curbit
,
lsl
#
1
b
lo
Lbignum
Loop3
:
@
Test
for
possible
subtractions
.
On
the
final
pass
,
this
may
...
...
@@ -194,38 +194,38 @@ Loop3:
@
We
can
fix
them
up
afterwards
.
mov
overdone
,
#
0
cmp
dividend
,
divisor
sub
HS
dividend
,
dividend
,
divisor
sub
hs
dividend
,
dividend
,
divisor
cmp
dividend
,
divisor
,
lsr
#
1
sub
HS
dividend
,
dividend
,
divisor
,
lsr
#
1
orr
HS
overdone
,
overdone
,
curbit
,
ror
#
1
sub
hs
dividend
,
dividend
,
divisor
,
lsr
#
1
orr
hs
overdone
,
overdone
,
curbit
,
ror
#
1
cmp
dividend
,
divisor
,
lsr
#
2
sub
HS
dividend
,
dividend
,
divisor
,
lsr
#
2
orr
HS
overdone
,
overdone
,
curbit
,
ror
#
2
sub
hs
dividend
,
dividend
,
divisor
,
lsr
#
2
orr
hs
overdone
,
overdone
,
curbit
,
ror
#
2
cmp
dividend
,
divisor
,
lsr
#
3
sub
HS
dividend
,
dividend
,
divisor
,
lsr
#
3
orr
HS
overdone
,
overdone
,
curbit
,
ror
#
3
sub
hs
dividend
,
dividend
,
divisor
,
lsr
#
3
orr
hs
overdone
,
overdone
,
curbit
,
ror
#
3
mov
ip
,
curbit
.
else
@
...
so
keep
track
of
which
subtractions
are
done
in
RESULT
.
@
The
result
will
be
ok
,
since
the
"bit"
will
have
been
@
shifted
out
at
the
bottom
.
cmp
dividend
,
divisor
sub
HS
dividend
,
dividend
,
divisor
orr
HS
result
,
result
,
curbit
sub
hs
dividend
,
dividend
,
divisor
orr
hs
result
,
result
,
curbit
cmp
dividend
,
divisor
,
lsr
#
1
sub
HS
dividend
,
dividend
,
divisor
,
lsr
#
1
orr
HS
result
,
result
,
curbit
,
lsr
#
1
sub
hs
dividend
,
dividend
,
divisor
,
lsr
#
1
orr
hs
result
,
result
,
curbit
,
lsr
#
1
cmp
dividend
,
divisor
,
lsr
#
2
sub
HS
dividend
,
dividend
,
divisor
,
lsr
#
2
orr
HS
result
,
result
,
curbit
,
lsr
#
2
sub
hs
dividend
,
dividend
,
divisor
,
lsr
#
2
orr
hs
result
,
result
,
curbit
,
lsr
#
2
cmp
dividend
,
divisor
,
lsr
#
3
sub
HS
dividend
,
dividend
,
divisor
,
lsr
#
3
orr
HS
result
,
result
,
curbit
,
lsr
#
3
sub
hs
dividend
,
dividend
,
divisor
,
lsr
#
3
orr
hs
result
,
result
,
curbit
,
lsr
#
3
.
endif
cmp
dividend
,
#
0
@
Early
termination
?
mov
NE
s
curbit
,
curbit
,
lsr
#
4
@
No
,
any
more
bits
to
do
?
mov
NE
divisor
,
divisor
,
lsr
#
4
mov
ne
s
curbit
,
curbit
,
lsr
#
4
@
No
,
any
more
bits
to
do
?
mov
ne
divisor
,
divisor
,
lsr
#
4
bNE
Loop3
.
if
\
modulo
...
...
@@ -240,14 +240,14 @@ Lfixup_dividend:
@
(
rather
relying
upon
the
TSTs
to
prevent
the
additions
)
since
@
the
bit
in
ip
could
be
in
the
top
two
bits
which
might
then
match
@
with
one
of
the
smaller
RORs
.
tst
NE
ip
,
#
0x7
b
EQ
Lgot_result
tst
ne
ip
,
#
0x7
b
eq
Lgot_result
tst
overdone
,
ip
,
ror
#
3
add
NE
dividend
,
dividend
,
divisor
,
lsr
#
3
add
ne
dividend
,
dividend
,
divisor
,
lsr
#
3
tst
overdone
,
ip
,
ror
#
2
add
NE
dividend
,
dividend
,
divisor
,
lsr
#
2
add
ne
dividend
,
dividend
,
divisor
,
lsr
#
2
tst
overdone
,
ip
,
ror
#
1
add
NE
dividend
,
dividend
,
divisor
,
lsr
#
1
add
ne
dividend
,
dividend
,
divisor
,
lsr
#
1
.
endif
Lgot_result
:
...
...
@@ -263,9 +263,9 @@ Loop1:
@
division
loop
.
Continue
shifting
until
the
divisor
is
@
larger
than
the
dividend
.
cmp
divisor
,
work
b
HS
Lbignum
b
hs
Lbignum
cmp
divisor
,
dividend
b
HS
Lbignum
b
hs
Lbignum
lsl
divisor
,
#
4
lsl
curbit
,
#
4
b
Loop1
...
...
@@ -276,9 +276,9 @@ Loop2:
@
For
very
big
divisors
,
we
must
shift
it
a
bit
at
a
time
,
or
@
we
will
be
in
danger
of
overflowing
.
cmp
divisor
,
work
b
HS
Loop3
b
hs
Loop3
cmp
divisor
,
dividend
b
HS
Loop3
b
hs
Loop3
lsl
divisor
,
#
1
lsl
curbit
,
#
1
b
Loop2
...
...
@@ -290,12 +290,12 @@ Loop3:
@
afterwards
.
mov
overdone
,
#
0
cmp
dividend
,
divisor
b
LO
Lover1
b
lo
Lover1
sub
dividend
,
dividend
,
divisor
Lover1
:
lsr
work
,
divisor
,
#
1
cmp
dividend
,
work
b
LO
Lover2
b
lo
Lover2
sub
dividend
,
dividend
,
work
mov
ip
,
curbit
mov
work
,
#
1
...
...
@@ -305,7 +305,7 @@ Lover1:
Lover2
:
lsr
work
,
divisor
,
#
2
cmp
dividend
,
work
b
LO
Lover3
b
lo
Lover3
sub
dividend
,
dividend
,
work
mov
ip
,
curbit
mov
work
,
#
2
...
...
@@ -315,7 +315,7 @@ Lover2:
Lover3
:
lsr
work
,
divisor
,
#
3
cmp
dividend
,
work
b
LO
Lover4
b
lo
Lover4
sub
dividend
,
dividend
,
work
mov
ip
,
curbit
mov
work
,
#
3
...
...
@@ -329,27 +329,27 @@ Lover4:
@
this
may
subtract
too
much
from
the
dividend
,
but
the
result
will
be
ok
,
@
since
the
"bit"
will
have
been
shifted
out
at
the
bottom
.
cmp
dividend
,
divisor
b
LO
Lover1
b
lo
Lover1
sub
dividend
,
dividend
,
divisor
orr
result
,
result
,
curbit
Lover1
:
lsr
work
,
divisor
,
#
1
cmp
dividend
,
work
b
LO
Lover2
b
lo
Lover2
sub
dividend
,
dividend
,
work
lsr
work
,
curbit
,
#
1
orr
result
,
work
Lover2
:
lsr
work
,
divisor
,
#
2
cmp
dividend
,
work
b
LO
Lover3
b
lo
Lover3
sub
dividend
,
dividend
,
work
lsr
work
,
curbit
,
#
2
orr
result
,
work
Lover3
:
lsr
work
,
divisor
,
#
3
cmp
dividend
,
work
b
LO
Lover4
b
lo
Lover4
sub
dividend
,
dividend
,
work
lsr
work
,
curbit
,
#
3
orr
result
,
work
...
...
@@ -357,9 +357,9 @@ Lover4:
.
endif
cmp
dividend
,
#
0
@
Early
termination
?
b
EQ
Lover5
b
eq
Lover5
lsr
curbit
,
#
4
@
No
,
any
more
bits
to
do
?
b
EQ
Lover5
b
eq
Lover5
lsr
divisor
,
#
4
b
Loop3
Lover5
:
...
...
@@ -370,7 +370,7 @@ Lover5:
mov
work
,
#
0xe
lsl
work
,
#
28
and
overdone
,
work
b
EQ
Lgot_result
b
eq
Lgot_result
@
If
we
terminated
early
,
because
dividend
became
zero
,
then
the
@
bit
in
ip
will
not
be
in
the
bottom
nibble
,
and
we
should
not
...
...
@@ -381,13 +381,13 @@ Lover5:
mov
curbit
,
ip
mov
work
,
#
0x7
tst
curbit
,
work
b
EQ
Lgot_result
b
eq
Lgot_result
mov
curbit
,
ip
mov
work
,
#
3
ror
curbit
,
work
tst
overdone
,
curbit
b
EQ
Lover6
b
eq
Lover6
lsr
work
,
divisor
,
#
3
add
dividend
,
work
Lover6
:
...
...
@@ -395,7 +395,7 @@ Lover6:
mov
work
,
#
2
ror
curbit
,
work
tst
overdone
,
curbit
b
EQ
Lover7
b
eq
Lover7
lsr
work
,
divisor
,
#
2
add
dividend
,
work
Lover7
:
...
...
@@ -403,7 +403,7 @@ Lover7:
mov
work
,
#
1
ror
curbit
,
work
tst
overdone
,
curbit
b
EQ
Lgot_result
b
eq
Lgot_result
lsr
work
,
divisor
,
#
1
add
dividend
,
work
.
endif
...
...
@@ -419,13 +419,13 @@ Lgot_result:
#
ifdef
__thumb__
cmp
divisor
,
#
0
b
EQ
Ldiv0
b
eq
Ldiv0
mov
curbit
,
#
1
mov
result
,
#
0
push
{
work
}
cmp
dividend
,
divisor
b
LO
Lgot_result
b
lo
Lgot_result
THUMB_DIV_MOD_BODY
0
...
...
@@ -436,11 +436,11 @@ Lgot_result:
#
else
/*
ARM
version
.
*/
cmp
divisor
,
#
0
b
EQ
Ldiv0
b
eq
Ldiv0
mov
curbit
,
#
1
mov
result
,
#
0
cmp
dividend
,
divisor
b
LO
Lgot_result
b
lo
Lgot_result
ARM_DIV_MOD_BODY
0
...
...
@@ -460,10 +460,10 @@ Lgot_result:
#
ifdef
__thumb__
cmp
divisor
,
#
0
b
EQ
Ldiv0
b
eq
Ldiv0
mov
curbit
,
#
1
cmp
dividend
,
divisor
b
HS
Lover10
b
hs
Lover10
RET
Lover10
:
...
...
@@ -477,11 +477,11 @@ Lover10:
#
else
/*
ARM
version
.
*/
cmp
divisor
,
#
0
b
EQ
Ldiv0
b
eq
Ldiv0
cmp
divisor
,
#
1
cmp
NE
dividend
,
divisor
mov
EQ
dividend
,
#
0
RETc
(
LO
)
cmp
ne
dividend
,
divisor
mov
eq
dividend
,
#
0
RETc
(
lo
)
mov
curbit
,
#
1
ARM_DIV_MOD_BODY
1
...
...
@@ -500,7 +500,7 @@ Lover10:
#
ifdef
__thumb__
cmp
divisor
,
#
0
b
EQ
Ldiv0
b
eq
Ldiv0
push
{
work
}
mov
work
,
dividend
...
...
@@ -509,22 +509,22 @@ Lover10:
mov
curbit
,
#
1
mov
result
,
#
0
cmp
divisor
,
#
0
b
PL
Lover10
b
pl
Lover10
neg
divisor
,
divisor
@
Loops
below
use
unsigned
.
Lover10
:
cmp
dividend
,
#
0
b
PL
Lover11
b
pl
Lover11
neg
dividend
,
dividend
Lover11
:
cmp
dividend
,
divisor
b
LO
Lgot_result
b
lo
Lgot_result
THUMB_DIV_MOD_BODY
0
mov
r0
,
result
mov
work
,
ip
cmp
work
,
#
0
b
PL
Lover12
b
pl
Lover12
neg
r0
,
r0
Lover12
:
pop
{
work
}
...
...
@@ -536,18 +536,18 @@ Lover12:
mov
curbit
,
#
1
mov
result
,
#
0
cmp
divisor
,
#
0
rsb
MI
divisor
,
divisor
,
#
0
@
Loops
below
use
unsigned
.
b
EQ
Ldiv0
rsb
mi
divisor
,
divisor
,
#
0
@
Loops
below
use
unsigned
.
b
eq
Ldiv0
cmp
dividend
,
#
0
rsb
MI
dividend
,
dividend
,
#
0
rsb
mi
dividend
,
dividend
,
#
0
cmp
dividend
,
divisor
b
LO
Lgot_result
b
lo
Lgot_result
ARM_DIV_MOD_BODY
0
mov
r0
,
result
cmp
ip
,
#
0
rsb
MI
r0
,
r0
,
#
0
rsb
mi
r0
,
r0
,
#
0
RET
#
endif
/*
ARM
version
*/
...
...
@@ -564,8 +564,8 @@ Lover12:
mov
curbit
,
#
1
cmp
divisor
,
#
0
b
EQ
Ldiv0
b
PL
Lover10
b
eq
Ldiv0
b
pl
Lover10
neg
divisor
,
divisor
@
Loops
below
use
unsigned
.
Lover10
:
push
{
work
}
...
...
@@ -574,17 +574,17 @@ Lover10:
@
the
work
register
,
because
we
will
pop
this
value
off
first
.
push
{
dividend
}
cmp
dividend
,
#
0
b
PL
Lover11
b
pl
Lover11
neg
dividend
,
dividend
Lover11
:
cmp
dividend
,
divisor
b
LO
Lgot_result
b
lo
Lgot_result
THUMB_DIV_MOD_BODY
1
pop
{
work
}
cmp
work
,
#
0
b
PL
Lover12
b
pl
Lover12
neg
dividend
,
dividend
Lover12
:
pop
{
work
}
...
...
@@ -593,22 +593,22 @@ Lover12:
#
else
/*
ARM
version
.
*/
cmp
divisor
,
#
0
rsb
MI
divisor
,
divisor
,
#
0
@
Loops
below
use
unsigned
.
b
EQ
Ldiv0
rsb
mi
divisor
,
divisor
,
#
0
@
Loops
below
use
unsigned
.
b
eq
Ldiv0
@
Need
to
save
the
sign
of
the
dividend
,
unfortunately
,
we
need
@
ip
later
on
; this is faster than pushing lr and using that.
str
dividend
,
[
sp
,
#
-
4
]!
cmp
dividend
,
#
0
@
Test
dividend
against
zero
rsb
MI
dividend
,
dividend
,
#
0
@
If
negative
make
positive
rsb
mi
dividend
,
dividend
,
#
0
@
If
negative
make
positive
cmp
dividend
,
divisor
@
else
if
zero
return
zero
b
LO
Lgot_result
@
if
smaller
return
dividend
b
lo
Lgot_result
@
if
smaller
return
dividend
mov
curbit
,
#
1
ARM_DIV_MOD_BODY
1
ldr
ip
,
[sp],
#
4
cmp
ip
,
#
0
rsb
MI
dividend
,
dividend
,
#
0
rsb
mi
dividend
,
dividend
,
#
0
RET
#
endif
/*
ARM
version
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment