aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1996-08-14 10:34:30 -0600
committerJeff Law <law@gcc.gnu.org>1996-08-14 10:34:30 -0600
commite38fd454ac27fd4c19572c3fc9f81fcc18d5a0c8 (patch)
tree8e2f0bcad477dd676b3f15862fda5cb62141a78c /gcc
parent06737be4a366c8ae7368666e457dfdedafbe48be (diff)
downloadgcc-e38fd454ac27fd4c19572c3fc9f81fcc18d5a0c8.zip
gcc-e38fd454ac27fd4c19572c3fc9f81fcc18d5a0c8.tar.gz
gcc-e38fd454ac27fd4c19572c3fc9f81fcc18d5a0c8.tar.bz2
* pa/pa.h (OUTPUT_MI_THUNK): Define.
From-SVN: r12638
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 38c7dab..81ea53a 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1050,6 +1050,18 @@ extern enum cmp_type hppa_branch_type;
fprintf (FILE, ",ARGW%d=FR", (ARG1));} while (0)
#endif
+#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
+{ char *my_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (THUNK_FNDECL)); \
+ char *target_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (FUNCTION)); \
+ output_function_prologue (FILE, 0); \
+ if (VAL_14_BITS_P (DELTA)) \
+ fprintf (FILE, "\tb %s\n\tldo %d(%%r26),%%r26\n", target_name, DELTA); \
+ else \
+ fprintf (FILE, "\taddil L%%%d,%r26\n\tb %s\n\tldo R%%%d(%%r1),%%r26\n", \
+ DELTA, target_name, DELTA); \
+ fprintf (FILE, "\n\t.EXIT\n\t.PROCEND\n"); \
+}
+
#define ASM_OUTPUT_FUNCTION_PREFIX(FILE, NAME) \
{ \
char *name; \