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
f6bac694
Commit
f6bac694
authored
Oct 22, 2010
by
DJ Delorie
Committed by
DJ Delorie
Oct 22, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
From-SVN: r165859
parent
4d1bc60a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
12 deletions
+24
-12
gcc/ChangeLog
+4
-0
gcc/config/m32c/m32c-lib1.S
+20
-12
No files found.
gcc/ChangeLog
View file @
f6bac694
2010
-
10
-
22
DJ
Delorie
<
dj
@redhat
.
com
>
*
config
/
m32c
/
m32c
-
lib1
.
S
(
m32c_jsri16
)
:
Make
reentrant
.
2010
-
10
-
22
Paul
Koning
<
ni1d
@arrl
.
net
>
2010
-
10
-
22
Paul
Koning
<
ni1d
@arrl
.
net
>
*
config
/
pdp11
/
pdp11
.
h
(
IRA_COVER_CLASSES
)
:
Define
.
*
config
/
pdp11
/
pdp11
.
h
(
IRA_COVER_CLASSES
)
:
Define
.
gcc/config/m32c/m32c-lib1.S
View file @
f6bac694
...
@@ -204,20 +204,28 @@ cmpsi_lt:
...
@@ -204,20 +204,28 @@ cmpsi_lt:
#endif
#endif
#ifdef L__m32c_jsri16
#ifdef L__m32c_jsri16
.data
m32c_jsri_addr:
.byte 0, 0, 0
m32c_jsri_ret:
.byte 0, 0, 0
.text
.text
#ifdef A16
.global m32c_jsri16
.global m32c_jsri16
m32c_jsri16:
m32c_jsri16:
pop.w m32c_jsri_ret
add.w #-1, sp
pop.b m32c_jsri_ret+2
pop.w m32c_jsri_addr
/* Read the address (16 bits) and return address (24 bits) off
push.b m32c_jsri_ret+2
the stack. */
push.w m32c_jsri_ret
mov.w 4[sp], r0
jmpi.a m32c_jsri_addr
mov.w 1[sp], r3
mov.b 3[sp], a0 /* This zero-extends, so the high byte has
zero in it. */
/* Write the return address, then new address, to the stack. */
mov.w a0, 1[sp] /* Just to get the zero in 2[sp]. */
mov.w r0, 0[sp]
mov.w r3, 3[sp]
mov.b a0, 5[sp]
/* This "returns" to the target address, leaving the pending
return address on the stack. */
rts
#endif
#endif
#endif
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