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
1df8f58f
Commit
1df8f58f
authored
May 02, 1996
by
Jason Merrill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(ASM_OUTPUT_MI_THUNK): Fix for sparc64, optimize.
From-SVN: r11913
parent
dd4fd0a0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
10 deletions
+24
-10
gcc/config/sparc/sparc.h
+24
-10
No files found.
gcc/config/sparc/sparc.h
View file @
1df8f58f
...
@@ -2948,16 +2948,30 @@ do { \
...
@@ -2948,16 +2948,30 @@ do { \
/* Output code to add DELTA to the first argument, and then jump to FUNCTION.
/* Output code to add DELTA to the first argument, and then jump to FUNCTION.
Used for C++ multiple inheritance. */
Used for C++ multiple inheritance. */
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \
do { \
int big_delta = (DELTA) >= 4096 || (DELTA) < -4096; \
int big_delta = (DELTA) >= 4096 || (DELTA) < -4096; \
if (big_delta) \
if (big_delta) \
fprintf (FILE, "\tset %d,%%g1\n\tadd %%o0,%%g1,%%o0\n", DELTA); \
fprintf (FILE, "\tset %d,%%g1\n\tadd %%o0,%%g1,%%o0\n", (DELTA)); \
fprintf (FILE, "\tset "); \
if (TARGET_MEDANY || TARGET_FULLANY) \
assemble_name (FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
{ \
fprintf (FILE, ",%%g1\n\tjmp %%g1\n");\
fprintf (FILE, "\tsetx "); \
if (big_delta) fprintf (FILE, "\tnop\n"); \
assemble_name \
else fprintf (FILE, "\tadd %%o0,%d,%%o0\n", DELTA); \
(FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
fprintf (FILE, ",%%g5,%%g1\n\tjmp %%g1\n"); \
} \
else \
{ \
fprintf (FILE, "\tsethi %%hi("); \
assemble_name \
(FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
fprintf (FILE, "),%%g1\n\tjmp %%g1+%%lo("); \
assemble_name \
(FILE, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION))); \
fprintf (FILE, ")\n"); \
} \
if (big_delta) fprintf (FILE, "\tnop\n"); \
else fprintf (FILE, "\tadd %%o0,%d,%%o0\n", DELTA); \
} while (0)
} while (0)
/* Define the parentheses used to group arithmetic operations
/* Define the parentheses used to group arithmetic operations
...
...
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