]> www.ginac.de Git - cln.git/blobdiff - include/cln/modules.h
* include/cln/modules.h, include/cln/object.h: add support for
[cln.git] / include / cln / modules.h
index ff0589460725bc713990ab0adc274de2b690a00f..22f7c19f426d089fdfad975ae7b747d69d4d647d 100644 (file)
@@ -64,7 +64,7 @@
   #endif
   // Globalize a label defined in the same translation unit.
   // 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__) || defined(__s390__)
     // Some m68k systems use "xdef" or "global" or ".global"...
     #define CL_GLOBALIZE_LABEL(label)  __asm__("\t.globl " label);
   #endif
   #if defined(__ia64__)
     #define CL_JUMP_TO(addr)  ASM_VOLATILE("br " #addr)
   #endif
+  #if defined(__s390__)
+    #define CL_JUMP_TO(addr)  ASM_VOLATILE("br %0" : : "a" ((void*)(addr)))
+  #endif
   #ifdef CL_GLOBAL_DESTRUCTOR_PREFIX
     #define CL_PROVIDE(module)  \
       extern "C" void cl_module__##module##__firstglobalfun () {}      \