Tweaks to compile the release build with clang. Now if it only would not

generate curious code like this one (Ubuntu 11.10's clang 2.9 on i386):

   0x080a57ea <+538>:   xor    %al,%al
   0x080a57ec <+540>:   test   %al,%al
   0x080a57ee <+542>:   jnz    0x80a57f2 <initgroupfile+546>
=> 0x080a57f0 <+544>:   jmp    0x80a57f0 <initgroupfile+544>
   0x080a57f2 <+546>:   shl    $0x4,%edi

git-svn-id: https://svn.eduke32.com/eduke32@2182 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2011-12-15 22:43:01 +00:00
parent df94c55eab
commit 8f92cb024d
3 changed files with 18 additions and 1 deletions

View file

@ -78,7 +78,10 @@ endif
ifneq (0,$(RELEASE))
# Debugging disabled
debug=-funswitch-loops -O$(OPTLEVEL)
debug=-O$(OPTLEVEL)
ifneq ($(CC),clang)
debug=-funswitch-loops
endif
ifeq (0,$(DEBUGANYWAY))
debug+= -fomit-frame-pointer
endif

View file

@ -1806,6 +1806,13 @@ int32_t checksectorpointer(int16_t i, int16_t sectnum)
#undef WALLS_ARE_CONSISTENT
#ifdef __clang__
int32_t engine_dummy_function_to_keep_symbols(void)
{
return shlookup[0] | sqrtable[0];
}
#endif
#if defined(_MSC_VER) && !defined(NOASM)

View file

@ -188,6 +188,13 @@ static int32_t gotcmov = -2, abstab10[1024] ASMNAME("abstab10");
static int32_t qhufval0[1<<LOGQHUFSIZ0], qhufval1[1<<LOGQHUFSIZ1];
static uint8_t qhufbit0[1<<LOGQHUFSIZ0], qhufbit1[1<<LOGQHUFSIZ1];
#ifdef __clang__
int32_t kplib_dummy_function_to_keep_symbols(void)
{
return abstab10[0] | trnsrgb;
}
#endif
#if defined(_MSC_VER) && !defined(NOASM)
static _inline uint32_t bswap(uint32_t a)