Browse Source

* include/cln/modules.h (CL_JUMP_TO): Fix IA64 brokenness.

master
Richard Kreckel 24 years ago
parent
commit
71a786fd73
  1. 4
      ChangeLog
  2. 11
      include/cln/modules.h

4
ChangeLog

@ -1,3 +1,7 @@
2001-03-05 Richard Kreckel <kreckel@ginac.de>
* include/cln/modules.h (CL_JUMP_TO): Fix IA64 brokenness.
2001-01-28 Richard Kreckel <kreckel@ginac.de> 2001-01-28 Richard Kreckel <kreckel@ginac.de>
* include/cln/number.h (cl_as_N): Remove bogus comment. * include/cln/number.h (cl_as_N): Remove bogus comment.

11
include/cln/modules.h

@ -63,12 +63,12 @@
#define ASM_UNDERSCORE_PREFIX "" #define ASM_UNDERSCORE_PREFIX ""
#endif #endif
// Globalize a label defined in the same translation unit. // Globalize a label defined in the same translation unit.
// See macro ASM_GLOBALIZE_LABEL in the egcs sources.
// See macro ASM_GLOBALIZE_LABEL in the gcc sources.
#if defined(__i386__) || defined(__m68k__) || defined(__mips__) || defined(__mips64__) || defined(__alpha__) || defined(__rs6000__) #if defined(__i386__) || defined(__m68k__) || defined(__mips__) || defined(__mips64__) || defined(__alpha__) || defined(__rs6000__)
// Some m68k systems use "xdef" or "global" or ".global"... // Some m68k systems use "xdef" or "global" or ".global"...
#define CL_GLOBALIZE_LABEL(label) __asm__("\t.globl " label); #define CL_GLOBALIZE_LABEL(label) __asm__("\t.globl " label);
#endif #endif
#if defined(__sparc__) || defined(__sparc64__) || defined(__arm__)
#if defined(__sparc__) || defined(__sparc64__) || defined(__arm__) || defined(__ia64__)
// Some arm systems use "EXPORT" or ".globl"... // Some arm systems use "EXPORT" or ".globl"...
#define CL_GLOBALIZE_LABEL(label) __asm__("\t.global " label); #define CL_GLOBALIZE_LABEL(label) __asm__("\t.global " label);
#endif #endif
@ -81,9 +81,6 @@
#if defined(__convex__) #if defined(__convex__)
#define CL_GLOBALIZE_LABEL(label) __asm__(".globl " label); #define CL_GLOBALIZE_LABEL(label) __asm__(".globl " label);
#endif #endif
#if defined(__ia64__)
#define CL_GLOBALIZE_LABEL(label) __asm__("\t.global " label);
#endif
#ifndef CL_GLOBALIZE_LABEL #ifndef CL_GLOBALIZE_LABEL
#define CL_GLOBALIZE_LABEL(label) #define CL_GLOBALIZE_LABEL(label)
#endif #endif
@ -98,7 +95,7 @@
#define CL_GLOBALIZE_CTORDTOR_LABEL(label) #define CL_GLOBALIZE_CTORDTOR_LABEL(label)
#endif #endif
// Output a label inside a function. // Output a label inside a function.
// See macro ASM_OUTPUT_LABEL in the egcs sources.
// See macro ASM_OUTPUT_LABEL in the gcc sources.
#if defined(__hppa__) #if defined(__hppa__)
#define CL_OUTPUT_LABEL(label) ASM_VOLATILE ("\n" label) #define CL_OUTPUT_LABEL(label) ASM_VOLATILE ("\n" label)
#else #else
@ -149,7 +146,7 @@
#define CL_JUMP_TO(addr) ASM_VOLATILE("jmp (%0)" : : "r" ((void*)(addr))) #define CL_JUMP_TO(addr) ASM_VOLATILE("jmp (%0)" : : "r" ((void*)(addr)))
#endif #endif
#if defined(__ia64__) #if defined(__ia64__)
#define CL_JUMP_TO(addr) ASM_VOLATILE("br %0" : : "b" ((void*)(addr)))
#define CL_JUMP_TO(addr) ASM_VOLATILE("br " #addr)
#endif #endif
#define CL_PROVIDE(module) \ #define CL_PROVIDE(module) \
extern "C" void cl_module__##module##__firstglobalfun () {} \ extern "C" void cl_module__##module##__firstglobalfun () {} \

Loading…
Cancel
Save