Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
7d136361
Commit
7d136361
authored
May 27, 2003
by
Miles Bader
Committed by
Arnaldo Carvalho de Melo
May 27, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] Whitespace and comment cleanups for v850 entry.S
parent
2813d4af
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
49 deletions
+51
-49
arch/v850/kernel/entry.S
arch/v850/kernel/entry.S
+51
-49
No files found.
arch/v850/kernel/entry.S
View file @
7d136361
...
@@ -29,28 +29,28 @@
...
@@ -29,28 +29,28 @@
#define CSYM C_SYMBOL_NAME
#define CSYM C_SYMBOL_NAME
/*
The
offset
of
the
struct
pt_regs
in
a
`
state
save
frame
'
on the stack. */
/*
The
offset
of
the
struct
pt_regs
in
a
state
-
save
-
frame
on
the
stack
.
*/
#define PTO STATE_SAVE_PT_OFFSET
#define PTO STATE_SAVE_PT_OFFSET
/*
Save
argument
registers
to
the
st
ruct
pt_regs
pointed
to
by
EP
.
*/
/*
Save
argument
registers
to
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
*/
#define SAVE_ARG_REGS \
#define SAVE_ARG_REGS \
sst.w
r6
,
PTO
+
PT_GPR
(
6
)[
ep
]
; \
sst.w
r6
,
PTO
+
PT_GPR
(
6
)[
ep
]
; \
sst.w
r7
,
PTO
+
PT_GPR
(
7
)[
ep
]
; \
sst.w
r7
,
PTO
+
PT_GPR
(
7
)[
ep
]
; \
sst.w
r8
,
PTO
+
PT_GPR
(
8
)[
ep
]
; \
sst.w
r8
,
PTO
+
PT_GPR
(
8
)[
ep
]
; \
sst.w
r9
,
PTO
+
PT_GPR
(
9
)[
ep
]
sst.w
r9
,
PTO
+
PT_GPR
(
9
)[
ep
]
/*
Restore
argument
registers
from
the
st
ruct
pt_regs
pointed
to
by
EP
.
*/
/*
Restore
argument
registers
from
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
*/
#define RESTORE_ARG_REGS \
#define RESTORE_ARG_REGS \
sld.w
PTO
+
PT_GPR
(
6
)[
ep
],
r6
; \
sld.w
PTO
+
PT_GPR
(
6
)[
ep
],
r6
; \
sld.w
PTO
+
PT_GPR
(
7
)[
ep
],
r7
; \
sld.w
PTO
+
PT_GPR
(
7
)[
ep
],
r7
; \
sld.w
PTO
+
PT_GPR
(
8
)[
ep
],
r8
; \
sld.w
PTO
+
PT_GPR
(
8
)[
ep
],
r8
; \
sld.w
PTO
+
PT_GPR
(
9
)[
ep
],
r9
sld.w
PTO
+
PT_GPR
(
9
)[
ep
],
r9
/*
Save
value
return
registers
to
the
st
ruct
pt_regs
pointed
to
by
EP
.
*/
/*
Save
value
return
registers
to
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
*/
#define SAVE_RVAL_REGS \
#define SAVE_RVAL_REGS \
sst.w
r10
,
PTO
+
PT_GPR
(
10
)[
ep
]
; \
sst.w
r10
,
PTO
+
PT_GPR
(
10
)[
ep
]
; \
sst.w
r11
,
PTO
+
PT_GPR
(
11
)[
ep
]
sst.w
r11
,
PTO
+
PT_GPR
(
11
)[
ep
]
/*
Restore
value
return
registers
from
the
st
ruct
pt_regs
pointed
to
by
EP
.
*/
/*
Restore
value
return
registers
from
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
*/
#define RESTORE_RVAL_REGS \
#define RESTORE_RVAL_REGS \
sld.w
PTO
+
PT_GPR
(
10
)[
ep
],
r10
; \
sld.w
PTO
+
PT_GPR
(
10
)[
ep
],
r10
; \
sld.w
PTO
+
PT_GPR
(
11
)[
ep
],
r11
sld.w
PTO
+
PT_GPR
(
11
)[
ep
],
r11
...
@@ -81,13 +81,13 @@
...
@@ -81,13 +81,13 @@
sld.w
PTO
+
PT_GPR
(
18
)[
ep
],
r18
; \
sld.w
PTO
+
PT_GPR
(
18
)[
ep
],
r18
; \
sld.w
PTO
+
PT_GPR
(
19
)[
ep
],
r19
sld.w
PTO
+
PT_GPR
(
19
)[
ep
],
r19
/*
Save
`
call
clobbered
' registers to the st
ruct pt_regs
pointed to by EP. */
/*
Save
`
call
clobbered
' registers to the st
ate-save-frame
pointed to by EP. */
#define SAVE_CALL_CLOBBERED_REGS \
#define SAVE_CALL_CLOBBERED_REGS \
SAVE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
SAVE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
SAVE_ARG_REGS
; \
SAVE_ARG_REGS
; \
SAVE_RVAL_REGS
; \
SAVE_RVAL_REGS
; \
SAVE_CALL_CLOBBERED_REGS_AFTER_RVAL
SAVE_CALL_CLOBBERED_REGS_AFTER_RVAL
/*
Restore
`
call
clobbered
' registers from the st
ruct pt_regs
pointed to
/*
Restore
`
call
clobbered
' registers from the st
ate-save-frame
pointed to
by
EP
.
*/
by
EP
.
*/
#define RESTORE_CALL_CLOBBERED_REGS \
#define RESTORE_CALL_CLOBBERED_REGS \
RESTORE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
RESTORE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
...
@@ -96,19 +96,19 @@
...
@@ -96,19 +96,19 @@
RESTORE_CALL_CLOBBERED_REGS_AFTER_RVAL
RESTORE_CALL_CLOBBERED_REGS_AFTER_RVAL
/*
Save
`
call
clobbered
' registers except for the return-value registers
/*
Save
`
call
clobbered
' registers except for the return-value registers
to
the
st
ruct
pt_regs
pointed
to
by
EP
.
*/
to
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
*/
#define SAVE_CALL_CLOBBERED_REGS_NO_RVAL \
#define SAVE_CALL_CLOBBERED_REGS_NO_RVAL \
SAVE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
SAVE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
SAVE_ARG_REGS
; \
SAVE_ARG_REGS
; \
SAVE_CALL_CLOBBERED_REGS_AFTER_RVAL
SAVE_CALL_CLOBBERED_REGS_AFTER_RVAL
/*
Restore
`
call
clobbered
' registers except for the return-value registers
/*
Restore
`
call
clobbered
' registers except for the return-value registers
from
the
st
ruct
pt_regs
pointed
to
by
EP
.
*/
from
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
*/
#define RESTORE_CALL_CLOBBERED_REGS_NO_RVAL \
#define RESTORE_CALL_CLOBBERED_REGS_NO_RVAL \
RESTORE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
RESTORE_CALL_CLOBBERED_REGS_BEFORE_ARGS
; \
RESTORE_ARG_REGS
; \
RESTORE_ARG_REGS
; \
RESTORE_CALL_CLOBBERED_REGS_AFTER_RVAL
RESTORE_CALL_CLOBBERED_REGS_AFTER_RVAL
/*
Save
`
call
saved
' registers to the st
ruct pt_regs
pointed to by EP. */
/*
Save
`
call
saved
' registers to the st
ate-save-frame
pointed to by EP. */
#define SAVE_CALL_SAVED_REGS \
#define SAVE_CALL_SAVED_REGS \
sst.w
r2
,
PTO
+
PT_GPR
(
2
)[
ep
]
; \
sst.w
r2
,
PTO
+
PT_GPR
(
2
)[
ep
]
; \
sst.w
r20
,
PTO
+
PT_GPR
(
20
)[
ep
]
; \
sst.w
r20
,
PTO
+
PT_GPR
(
20
)[
ep
]
; \
...
@@ -121,7 +121,7 @@
...
@@ -121,7 +121,7 @@
sst.w
r27
,
PTO
+
PT_GPR
(
27
)[
ep
]
; \
sst.w
r27
,
PTO
+
PT_GPR
(
27
)[
ep
]
; \
sst.w
r28
,
PTO
+
PT_GPR
(
28
)[
ep
]
; \
sst.w
r28
,
PTO
+
PT_GPR
(
28
)[
ep
]
; \
sst.w
r29
,
PTO
+
PT_GPR
(
29
)[
ep
]
sst.w
r29
,
PTO
+
PT_GPR
(
29
)[
ep
]
/*
Restore
`
call
saved
' registers from the st
ruct pt_regs
pointed to by EP. */
/*
Restore
`
call
saved
' registers from the st
ate-save-frame
pointed to by EP. */
#define RESTORE_CALL_SAVED_REGS \
#define RESTORE_CALL_SAVED_REGS \
sld.w
PTO
+
PT_GPR
(
2
)[
ep
],
r2
; \
sld.w
PTO
+
PT_GPR
(
2
)[
ep
],
r2
; \
sld.w
PTO
+
PT_GPR
(
20
)[
ep
],
r20
; \
sld.w
PTO
+
PT_GPR
(
20
)[
ep
],
r20
; \
...
@@ -136,12 +136,12 @@
...
@@ -136,12 +136,12 @@
sld.w
PTO
+
PT_GPR
(
29
)[
ep
],
r29
sld.w
PTO
+
PT_GPR
(
29
)[
ep
],
r29
/*
Save
the
PC
stored
in
the
special
register
SAVEREG
to
the
st
ruct
pt_regs
/*
Save
the
PC
stored
in
the
special
register
SAVEREG
to
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
r19
is
clobbered
.
*/
pointed
to
by
EP
.
r19
is
clobbered
.
*/
#define SAVE_PC(savereg) \
#define SAVE_PC(savereg) \
stsr
SR_
##
savereg
,
r19
; \
stsr
SR_
##
savereg
,
r19
; \
sst.w
r19
,
PTO
+
PT_PC
[
ep
]
sst.w
r19
,
PTO
+
PT_PC
[
ep
]
/*
Restore
the
PC
from
the
st
ruct
pt_regs
pointed
to
by
EP
,
to
the
special
/*
Restore
the
PC
from
the
st
ate
-
save
-
frame
pointed
to
by
EP
,
to
the
special
register
SAVEREG
.
LP
is
clobbered
(
it
is
used
as
a
scratch
register
register
SAVEREG
.
LP
is
clobbered
(
it
is
used
as
a
scratch
register
because
the
POP_STATE
macro
restores
it
,
and
this
macro
is
usually
used
because
the
POP_STATE
macro
restores
it
,
and
this
macro
is
usually
used
inside
POP_STATE
)
.
*/
inside
POP_STATE
)
.
*/
...
@@ -149,11 +149,11 @@
...
@@ -149,11 +149,11 @@
sld.w
PTO
+
PT_PC
[
ep
],
lp
; \
sld.w
PTO
+
PT_PC
[
ep
],
lp
; \
ldsr
lp
,
SR_
##
savereg
ldsr
lp
,
SR_
##
savereg
/*
Save
the
PSW
register
stored
in
the
special
register
SAVREG
to
the
/*
Save
the
PSW
register
stored
in
the
special
register
SAVREG
to
the
st
ruct
pt_regs
pointed
to
by
EP
r19
is
clobbered
.
*/
st
ate
-
save
-
frame
pointed
to
by
EP
.
r19
is
clobbered
.
*/
#define SAVE_PSW(savereg) \
#define SAVE_PSW(savereg) \
stsr
SR_
##
savereg
,
r19
; \
stsr
SR_
##
savereg
,
r19
; \
sst.w
r19
,
PTO
+
PT_PSW
[
ep
]
sst.w
r19
,
PTO
+
PT_PSW
[
ep
]
/*
Restore
the
PSW
register
from
the
st
ruct
pt_regs
pointed
to
by
EP
,
to
/*
Restore
the
PSW
register
from
the
st
ate
-
save
-
frame
pointed
to
by
EP
,
to
the
special
register
SAVEREG
.
LP
is
clobbered
(
it
is
used
as
a
scratch
the
special
register
SAVEREG
.
LP
is
clobbered
(
it
is
used
as
a
scratch
register
because
the
POP_STATE
macro
restores
it
,
and
this
macro
is
register
because
the
POP_STATE
macro
restores
it
,
and
this
macro
is
usually
used
inside
POP_STATE
)
.
*/
usually
used
inside
POP_STATE
)
.
*/
...
@@ -161,7 +161,7 @@
...
@@ -161,7 +161,7 @@
sld.w
PTO
+
PT_PSW
[
ep
],
lp
; \
sld.w
PTO
+
PT_PSW
[
ep
],
lp
; \
ldsr
lp
,
SR_
##
savereg
ldsr
lp
,
SR_
##
savereg
/*
Save
CTPC
/
CTPSW
/
CTBP
registers
to
the
st
ruct
pt_regs
pointed
to
by
REG
.
/*
Save
CTPC
/
CTPSW
/
CTBP
registers
to
the
st
ate
-
save
-
frame
pointed
to
by
REG
.
r19
is
clobbered
.
*/
r19
is
clobbered
.
*/
#define SAVE_CT_REGS \
#define SAVE_CT_REGS \
stsr
SR_CTPC
,
r19
; \
stsr
SR_CTPC
,
r19
; \
...
@@ -170,7 +170,7 @@
...
@@ -170,7 +170,7 @@
sst.w
r19
,
PTO
+
PT_CTPSW
[
ep
]
; \
sst.w
r19
,
PTO
+
PT_CTPSW
[
ep
]
; \
stsr
SR_CTBP
,
r19
; \
stsr
SR_CTBP
,
r19
; \
sst.w
r19
,
PTO
+
PT_CTBP
[
ep
]
sst.w
r19
,
PTO
+
PT_CTBP
[
ep
]
/*
Restore
CTPC
/
CTPSW
/
CTBP
registers
from
the
st
ruct
pt_regs
pointed
to
by
EP
.
/*
Restore
CTPC
/
CTPSW
/
CTBP
registers
from
the
st
ate
-
save
-
frame
pointed
to
by
EP
.
LP
is
clobbered
(
it
is
used
as
a
scratch
register
because
the
POP_STATE
LP
is
clobbered
(
it
is
used
as
a
scratch
register
because
the
POP_STATE
macro
restores
it
,
and
this
macro
is
usually
used
inside
POP_STATE
)
.
*/
macro
restores
it
,
and
this
macro
is
usually
used
inside
POP_STATE
)
.
*/
#define RESTORE_CT_REGS \
#define RESTORE_CT_REGS \
...
@@ -182,10 +182,11 @@
...
@@ -182,10 +182,11 @@
ldsr
lp
,
SR_CTBP
ldsr
lp
,
SR_CTBP
/*
Push
register
state
,
except
for
the
stack
pointer
,
on
the
stack
in
the
form
/*
Push
register
state
,
except
for
the
stack
pointer
,
on
the
stack
in
the
of
a
struct
pt_regs
,
in
preparation
for
a
system
call
.
This
macro
makes
form
of
a
state
-
save
-
frame
(
plus
some
extra
padding
),
in
preparation
for
sure
that
`
special
' registers, system registers; TYPE identifies the set of
a
system
call
.
This
macro
makes
sure
that
the
EP
,
GP
,
and
LP
extra
registers
to
be
saved
as
well
.
EP
is
clobbered
.
*/
registers
are
saved
,
and
TYPE
identifies
the
set
of
extra
registers
to
be
saved
as
well
.
Also
copies
(
the
new
value
of
)
SP
to
EP
.
*/
#define PUSH_STATE(type) \
#define PUSH_STATE(type) \
addi
-
STATE_SAVE_SIZE
,
sp
,
sp
; /* Make room on the stack. */ \
addi
-
STATE_SAVE_SIZE
,
sp
,
sp
; /* Make room on the stack. */ \
st.w
ep
,
PTO
+
PT_GPR
(
GPR_EP
)[
sp
]
; \
st.w
ep
,
PTO
+
PT_GPR
(
GPR_EP
)[
sp
]
; \
...
@@ -193,8 +194,8 @@
...
@@ -193,8 +194,8 @@
sst.w
gp
,
PTO
+
PT_GPR
(
GPR_GP
)[
ep
]
; \
sst.w
gp
,
PTO
+
PT_GPR
(
GPR_GP
)[
ep
]
; \
sst.w
lp
,
PTO
+
PT_GPR
(
GPR_LP
)[
ep
]
; \
sst.w
lp
,
PTO
+
PT_GPR
(
GPR_LP
)[
ep
]
; \
type
##
_STATE_SAVER
type
##
_STATE_SAVER
/*
Pop
a
register
state
,
except
for
the
stack
pointer
,
from
the
struct
pt_regs
/*
Pop
a
register
state
pushed
by
PUSH_STATE
,
except
for
the
stack
pointer
,
on
the
stack
.
*/
from
the
the
stack
.
*/
#define POP_STATE(type) \
#define POP_STATE(type) \
mov
sp
,
ep
; \
mov
sp
,
ep
; \
type
##
_STATE_RESTORER
; \
type
##
_STATE_RESTORER
; \
...
@@ -205,7 +206,7 @@
...
@@ -205,7 +206,7 @@
/*
Switch
to
the
kernel
stack
if
necessary
,
and
push
register
state
on
the
/*
Switch
to
the
kernel
stack
if
necessary
,
and
push
register
state
on
the
stack
in
the
form
of
a
st
ruct
pt_regs
.
Also
load
the
current
task
stack
in
the
form
of
a
st
ate
-
save
-
frame
.
Also
load
the
current
task
pointer
if
switching
from
user
mode
.
The
stack
-
pointer
(
r3
)
should
have
pointer
if
switching
from
user
mode
.
The
stack
-
pointer
(
r3
)
should
have
already
been
saved
to
the
memory
location
SP_SAVE_LOC
(
the
reason
for
already
been
saved
to
the
memory
location
SP_SAVE_LOC
(
the
reason
for
this
is
that
the
interrupt
vectors
may
be
beyond
a
22
-
bit
signed
offset
this
is
that
the
interrupt
vectors
may
be
beyond
a
22
-
bit
signed
offset
...
@@ -311,8 +312,8 @@
...
@@ -311,8 +312,8 @@
#define IRQ_EXTRA_STATE_RESTORER \
#define IRQ_EXTRA_STATE_RESTORER \
RESTORE_CALL_SAVED_REGS
; \
RESTORE_CALL_SAVED_REGS
; \
RESTORE_CT_REGS
RESTORE_CT_REGS
#define IRQ_
FUNCALL_EXTRA_STATE_SAVER
/* nothing */
#define IRQ_
SCHEDULE_EXTRA_STATE_SAVER
/* nothing */
#define IRQ_
FUNCALL
_EXTRA_STATE_RESTORER /* nothing */
#define IRQ_
SCHEDULE
_EXTRA_STATE_RESTORER /* nothing */
/*
Register
saving
/
restoring
for
non
-
maskable
interrupts
.
*/
/*
Register
saving
/
restoring
for
non
-
maskable
interrupts
.
*/
#define NMI_RET reti
#define NMI_RET reti
...
@@ -330,8 +331,8 @@
...
@@ -330,8 +331,8 @@
#define NMI_EXTRA_STATE_RESTORER \
#define NMI_EXTRA_STATE_RESTORER \
RESTORE_CALL_SAVED_REGS
; \
RESTORE_CALL_SAVED_REGS
; \
RESTORE_CT_REGS
RESTORE_CT_REGS
#define NMI_
FUNCALL_EXTRA_STATE_SAVER
/* nothing */
#define NMI_
SCHEDULE_EXTRA_STATE_SAVER
/* nothing */
#define NMI_
FUNCALL
_EXTRA_STATE_RESTORER /* nothing */
#define NMI_
SCHEDULE
_EXTRA_STATE_RESTORER /* nothing */
/*
Register
saving
/
restoring
for
debug
traps
.
*/
/*
Register
saving
/
restoring
for
debug
traps
.
*/
#define DBTRAP_RET .long 0x014607E0 /* `dbret', but gas doesn't support it. */
#define DBTRAP_RET .long 0x014607E0 /* `dbret', but gas doesn't support it. */
...
@@ -349,8 +350,8 @@
...
@@ -349,8 +350,8 @@
#define DBTRAP_EXTRA_STATE_RESTORER \
#define DBTRAP_EXTRA_STATE_RESTORER \
RESTORE_CALL_SAVED_REGS
; \
RESTORE_CALL_SAVED_REGS
; \
RESTORE_CT_REGS
RESTORE_CT_REGS
#define DBTRAP_
FUNCALL_EXTRA_STATE_SAVER
/* nothing */
#define DBTRAP_
SCHEDULE_EXTRA_STATE_SAVER
/* nothing */
#define DBTRAP_
FUNCALL_EXTRA_STATE_RESTORER
/* nothing */
#define DBTRAP_
SCHEDULE_EXTRA_STATE_RESTORER
/* nothing */
/*
Register
saving
/
restoring
for
a
context
switch
.
We
don
't need to save
/*
Register
saving
/
restoring
for
a
context
switch
.
We
don
't need to save
too
many
registers
,
because
context
-
switching
looks
like
a
function
call
too
many
registers
,
because
context
-
switching
looks
like
a
function
call
...
@@ -372,14 +373,14 @@
...
@@ -372,14 +373,14 @@
RESTORE_CT_REGS
RESTORE_CT_REGS
/*
Restore
register
state
from
the
st
ruct
pt_regs
on
the
stack
,
switch
back
/*
Restore
register
state
from
the
st
ate
-
save
-
frame
on
the
stack
,
switch
back
to
the
user
stack
if
necessary
,
and
return
from
the
trap
/
interrupt
.
to
the
user
stack
if
necessary
,
and
return
from
the
trap
/
interrupt
.
EXTRA_STATE_RESTORER
is
a
sequence
of
assembly
language
statements
to
EXTRA_STATE_RESTORER
is
a
sequence
of
assembly
language
statements
to
restore
anything
not
restored
by
this
macro
.
Only
registers
not
saved
by
restore
anything
not
restored
by
this
macro
.
Only
registers
not
saved
by
the
C
compiler
are
restored
(
that
is
,
R3
(
sp
),
R4
(
gp
),
R31
(
lp
),
and
the
C
compiler
are
restored
(
that
is
,
R3
(
sp
),
R4
(
gp
),
R31
(
lp
),
and
anything
restored
by
EXTRA_STATE_RESTORER
)
.
*/
anything
restored
by
EXTRA_STATE_RESTORER
)
.
*/
#define RETURN(type) \
#define RETURN(type) \
ld.b
PTO
+
PT_KERNEL_MODE
[
sp
],
r19
; \
ld.b
PTO
+
PT_KERNEL_MODE
[
sp
],
r19
; \
di
; /* Disable interrupts */ \
di
; /* Disable interrupts */ \
cmp
r19
,
r0
; /* See if returning to kernel mode, */\
cmp
r19
,
r0
; /* See if returning to kernel mode, */\
bne
2
f
; /* ... if so, skip resched &c. */ \
bne
2
f
; /* ... if so, skip resched &c. */ \
...
@@ -471,7 +472,7 @@
...
@@ -471,7 +472,7 @@
*
Return
value
in
r10
*
Return
value
in
r10
*/
*/
G_ENTRY
(
trap
):
G_ENTRY
(
trap
):
SAVE_STATE
(
TRAP
,
r12
,
ENTRY_SP
)
//
Save
registers
.
SAVE_STATE
(
TRAP
,
r12
,
ENTRY_SP
)
//
Save
registers
.
stsr
SR_ECR
,
r19
//
Find
out
which
trap
it
was
.
stsr
SR_ECR
,
r19
//
Find
out
which
trap
it
was
.
ei
//
Enable
interrupts
.
ei
//
Enable
interrupts
.
mov
hilo
(
ret_from_trap
),
lp
//
where
the
trap
should
return
mov
hilo
(
ret_from_trap
),
lp
//
where
the
trap
should
return
...
@@ -481,12 +482,12 @@ G_ENTRY(trap):
...
@@ -481,12 +482,12 @@ G_ENTRY(trap):
//
numbers
into
the
(
0
-
31
)
<<
2
range
we
want
,
(
3
)
set
the
flags
.
//
numbers
into
the
(
0
-
31
)
<<
2
range
we
want
,
(
3
)
set
the
flags
.
shl
27
,
r19
//
chop
off
all
high
bits
shl
27
,
r19
//
chop
off
all
high
bits
shr
25
,
r19
//
scale
back
down
and
then
<<
2
shr
25
,
r19
//
scale
back
down
and
then
<<
2
bnz
2
f
//
See
if
not
trap
0
.
bnz
2
f
//
See
if
not
trap
0
.
//
Trap
0
is
a
`
short
' system call, skip general trap table.
//
Trap
0
is
a
`
short
' system call, skip general trap table.
MAKE_SYS_CALL
//
Jump
to
the
syscall
function
.
MAKE_SYS_CALL
//
Jump
to
the
syscall
function
.
2
:
//
For
other
traps
,
use
a
table
lookup
.
2
:
//
For
other
traps
,
use
a
table
lookup
.
mov
hilo
(
CSYM
(
trap_table
)),
r18
mov
hilo
(
CSYM
(
trap_table
)),
r18
add
r19
,
r18
add
r19
,
r18
ld.w
0
[
r18
],
r18
ld.w
0
[
r18
],
r18
...
@@ -505,6 +506,7 @@ L_ENTRY(ret_from_trap):
...
@@ -505,6 +506,7 @@ L_ENTRY(ret_from_trap):
RETURN
(
TRAP
)
RETURN
(
TRAP
)
END
(
ret_from_trap
)
END
(
ret_from_trap
)
/*
This
the
initial
entry
point
for
a
new
child
thread
,
with
an
appropriate
/*
This
the
initial
entry
point
for
a
new
child
thread
,
with
an
appropriate
stack
in
place
that
makes
it
look
the
the
child
is
in
the
middle
of
an
stack
in
place
that
makes
it
look
the
the
child
is
in
the
middle
of
an
syscall
.
This
function
is
actually
`
returned
to
' from switch_thread
syscall
.
This
function
is
actually
`
returned
to
' from switch_thread
...
@@ -538,7 +540,7 @@ L_ENTRY(syscall_long):
...
@@ -538,7 +540,7 @@ L_ENTRY(syscall_long):
mov
hilo
(
ret_from_long_syscall
),
lp
mov
hilo
(
ret_from_long_syscall
),
lp
MAKE_SYS_CALL
//
Jump
to
the
syscall
function
.
MAKE_SYS_CALL
//
Jump
to
the
syscall
function
.
END
(
syscall_long
)
END
(
syscall_long
)
/*
Entry
point
used
to
return
from
a
long
syscall
.
Only
needed
to
restore
/*
Entry
point
used
to
return
from
a
long
syscall
.
Only
needed
to
restore
r13
/
r14
if
the
general
trap
mechanism
doesnt
' do so. */
r13
/
r14
if
the
general
trap
mechanism
doesnt
' do so. */
...
@@ -607,8 +609,8 @@ L_ENTRY(sys_sigsuspend_wrapper):
...
@@ -607,8 +609,8 @@ L_ENTRY(sys_sigsuspend_wrapper):
END
(
sys_sigsuspend_wrapper
)
END
(
sys_sigsuspend_wrapper
)
L_ENTRY
(
sys_rt_sigsuspend_wrapper
):
L_ENTRY
(
sys_rt_sigsuspend_wrapper
):
movea
PTO
,
sp
,
r8
//
add
user
context
as
3
rd
arg
movea
PTO
,
sp
,
r8
//
add
user
context
as
3
rd
arg
mov
hilo
(
CSYM
(
sys_rt_sigsuspend
)),
r18
//
syscall
function
mov
hilo
(
CSYM
(
sys_rt_sigsuspend
)),
r18
//
syscall
function
jarl
save_extra_state_tramp
,
lp
//
Save
state
and
do
it
jarl
save_extra_state_tramp
,
lp
//
Save
state
and
do
it
br
restore_extra_regs_and_ret_from_trap
br
restore_extra_regs_and_ret_from_trap
END
(
sys_rt_sigsuspend_wrapper
)
END
(
sys_rt_sigsuspend_wrapper
)
...
@@ -645,7 +647,7 @@ END(save_extra_state_tramp)
...
@@ -645,7 +647,7 @@ END(save_extra_state_tramp)
*
indirect
jump
)
.
*
indirect
jump
)
.
*/
*/
G_ENTRY
(
irq
):
G_ENTRY
(
irq
):
SAVE_STATE
(
IRQ
,
r0
,
ENTRY_SP
)
//
Save
registers
.
SAVE_STATE
(
IRQ
,
r0
,
ENTRY_SP
)
//
Save
registers
.
stsr
SR_ECR
,
r6
//
Find
out
which
interrupt
it
was
.
stsr
SR_ECR
,
r6
//
Find
out
which
interrupt
it
was
.
movea
PTO
,
sp
,
r7
//
User
regs
are
arg2
movea
PTO
,
sp
,
r7
//
User
regs
are
arg2
...
@@ -665,7 +667,7 @@ G_ENTRY(irq):
...
@@ -665,7 +667,7 @@ G_ENTRY(irq):
RETURN
(
IRQ
)
RETURN
(
IRQ
)
END
(
irq
)
END
(
irq
)
/*
/*
*
Debug
trap
/
illegal
-
instruction
exception
*
Debug
trap
/
illegal
-
instruction
exception
*
*
...
@@ -762,8 +764,8 @@ C_END(switch_thread)
...
@@ -762,8 +764,8 @@ C_END(switch_thread)
.
align
4
.
align
4
C_DATA
(
trap_table
):
C_DATA
(
trap_table
):
.
long
bad_trap_wrapper
//
trap
0
,
doesn
't use trap table.
.
long
bad_trap_wrapper
//
trap
0
,
doesn
't use trap table.
.
long
syscall_long
//
trap
1
,
`
long
' syscall.
.
long
syscall_long
//
trap
1
,
`
long
' syscall.
.
long
bad_trap_wrapper
.
long
bad_trap_wrapper
.
long
bad_trap_wrapper
.
long
bad_trap_wrapper
.
long
bad_trap_wrapper
.
long
bad_trap_wrapper
...
@@ -782,7 +784,7 @@ C_END(trap_table)
...
@@ -782,7 +784,7 @@ C_END(trap_table)
.
section
.
rodata
.
section
.
rodata
.
align
4
.
align
4
C_DATA
(
sys_call_table
):
C_DATA
(
sys_call_table
):
.
long
CSYM
(
sys_restart_syscall
)
//
0
.
long
CSYM
(
sys_restart_syscall
)
//
0
...
@@ -843,7 +845,7 @@ C_DATA(sys_call_table):
...
@@ -843,7 +845,7 @@ C_DATA(sys_call_table):
.
long
CSYM
(
sys_fcntl
)
//
55
.
long
CSYM
(
sys_fcntl
)
//
55
.
long
CSYM
(
sys_ni_syscall
)
//
was
:
mpx
.
long
CSYM
(
sys_ni_syscall
)
//
was
:
mpx
.
long
CSYM
(
sys_setpgid
)
.
long
CSYM
(
sys_setpgid
)
.
long
CSYM
(
sys_ni_syscall
)
//
was
:
ulimit
.
long
CSYM
(
sys_ni_syscall
)
//
was
:
ulimit
.
long
CSYM
(
sys_ni_syscall
)
.
long
CSYM
(
sys_ni_syscall
)
.
long
CSYM
(
sys_umask
)
//
60
.
long
CSYM
(
sys_umask
)
//
60
.
long
CSYM
(
sys_chroot
)
.
long
CSYM
(
sys_chroot
)
...
@@ -883,7 +885,7 @@ C_DATA(sys_call_table):
...
@@ -883,7 +885,7 @@ C_DATA(sys_call_table):
.
long
CSYM
(
sys_fchown
)
//
95
.
long
CSYM
(
sys_fchown
)
//
95
.
long
CSYM
(
sys_getpriority
)
.
long
CSYM
(
sys_getpriority
)
.
long
CSYM
(
sys_setpriority
)
.
long
CSYM
(
sys_setpriority
)
.
long
CSYM
(
sys_ni_syscall
)
//
was
:
profil
.
long
CSYM
(
sys_ni_syscall
)
//
was
:
profil
.
long
CSYM
(
sys_statfs
)
.
long
CSYM
(
sys_statfs
)
.
long
CSYM
(
sys_fstatfs
)
//
100
.
long
CSYM
(
sys_fstatfs
)
//
100
.
long
CSYM
(
sys_ni_syscall
)
//
i386
:
ioperm
.
long
CSYM
(
sys_ni_syscall
)
//
i386
:
ioperm
...
@@ -908,7 +910,7 @@ C_DATA(sys_call_table):
...
@@ -908,7 +910,7 @@ C_DATA(sys_call_table):
.
long
sys_clone_wrapper
//
120
.
long
sys_clone_wrapper
//
120
.
long
CSYM
(
sys_setdomainname
)
.
long
CSYM
(
sys_setdomainname
)
.
long
CSYM
(
sys_newuname
)
.
long
CSYM
(
sys_newuname
)
.
long
CSYM
(
sys_ni_syscall
)
//
i386
:
modify_ldt
,
m68k
:
cacheflush
.
long
CSYM
(
sys_ni_syscall
)
//
i386
:
modify_ldt
,
m68k
:
cacheflush
.
long
CSYM
(
sys_adjtimex
)
.
long
CSYM
(
sys_adjtimex
)
.
long
CSYM
(
sys_ni_syscall
)
//
125
-
sys_mprotect
.
long
CSYM
(
sys_ni_syscall
)
//
125
-
sys_mprotect
.
long
CSYM
(
sys_sigprocmask
)
.
long
CSYM
(
sys_sigprocmask
)
...
@@ -945,7 +947,7 @@ C_DATA(sys_call_table):
...
@@ -945,7 +947,7 @@ C_DATA(sys_call_table):
.
long
CSYM
(
sys_sched_getscheduler
)
.
long
CSYM
(
sys_sched_getscheduler
)
.
long
CSYM
(
sys_sched_yield
)
.
long
CSYM
(
sys_sched_yield
)
.
long
CSYM
(
sys_sched_get_priority_max
)
.
long
CSYM
(
sys_sched_get_priority_max
)
.
long
CSYM
(
sys_sched_get_priority_min
)
//
160
.
long
CSYM
(
sys_sched_get_priority_min
)
//
160
.
long
CSYM
(
sys_sched_rr_get_interval
)
.
long
CSYM
(
sys_sched_rr_get_interval
)
.
long
CSYM
(
sys_nanosleep
)
.
long
CSYM
(
sys_nanosleep
)
.
long
CSYM
(
sys_ni_syscall
)
//
sys_mremap
.
long
CSYM
(
sys_ni_syscall
)
//
sys_mremap
...
...
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