From 8d0e9dadb8b5e72c5e40af1d3d485575ea17f982 Mon Sep 17 00:00:00 2001 From: Richard Kreckel Date: Tue, 30 Aug 2005 21:41:03 +0000 Subject: [PATCH] * include/cln/modules.h (CL_OUTPUT_LABEL): Work around redundant duplication of basic blocks on m68k. --- ChangeLog | 5 +++++ include/cln/modules.h | 11 ++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1e56203..d34b109 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-08-30 Richard B. Kreckel + + * include/cln/modules.h (CL_OUTPUT_LABEL): Work around redundant + duplication of basic blocks on m68k. + 2005-08-30 Richard B. Kreckel * include/cln/modules.h (CL_JUMP_TO): Fix mips* brokenness. diff --git a/include/cln/modules.h b/include/cln/modules.h index d01e65a..ee64fc0 100644 --- a/include/cln/modules.h +++ b/include/cln/modules.h @@ -96,13 +96,7 @@ #endif // Output a label inside a function. // See macro ASM_OUTPUT_LABEL in the gcc sources. - #if defined(__hppa__) - // Some hppa (Linux) systems want `label:', HPUX used to use just `label'. - // I tried to find out, but was unable to find the assembler on my HPUX-11 - // boxen so decided to potentially ditch the support (no joke). Please - // send an email if you can explain to me what's going on! (-rbk. 07/2001) - #define CL_OUTPUT_LABEL(label) ASM_VOLATILE ("\n" label ":") - #elif defined(__ia64__) + #if defined(__ia64__) // g++-4.0 on IA64 likes to duplicate parts of basic blocks for no good // reason. To avoid an error when a label is defined twice, we can either // append "-Os" to the CXXFLAGS (then g++ does not create redundant @@ -113,6 +107,9 @@ // And ".set label,.+16" might not work at the very beginning of a // function. So we spend a nop; it becomes the target of the jump. #define CL_OUTPUT_LABEL(label) ASM_VOLATILE ("nop 0" "\n" ".set " label ", .") + #elif defined(__m68k__) + // C.f. IA64 case above. + #define CL_OUTPUT_LABEL(label) ASM_VOLATILE ("nop" "\n" ".set " label ", .") #else #define CL_OUTPUT_LABEL(label) ASM_VOLATILE ("\n" label ":") #endif