Bug 670323 - Fixes for nanojit on ARMv4T. r=jbramley

--HG--
extra : convert_revision : 6943e40c4f0a2f9b3c0551306ce89aa535579178
This commit is contained in:
Mike Hommey 2011-07-09 09:56:27 +02:00
Родитель b8c7b7666f
Коммит 29418bc8c7
2 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -129,10 +129,16 @@ Assembler::CountLeadingZeroes(uint32_t data)
// On Android gcc compiler, the clz instruction is not supported with a
// target smaller than armv7, despite it being legal for armv5+.
" .arch armv7-a\n"
// Force the object to be tagged as armv4t to avoid it bumping the final
// binary target.
" .object_arch armv4t\n"
#elif (NJ_COMPILER_ARM_ARCH < 5)
// Targetting armv5t allows a toolchain with armv4t target to still build
// with clz, and clz to be used when appropriate at runtime.
" .arch armv5t\n"
// Force the object file to be tagged as armv4t to avoid it bumping the
// final binary target.
" .object_arch armv4t\n"
#endif
" clz %0, %1 \n"
: "=r" (leading_zeroes)

Просмотреть файл

@ -96,7 +96,7 @@ namespace nanojit
harden_nop_insertion = false;
#if defined(NANOJIT_ARM)
NanoStaticAssert(NJ_COMPILER_ARM_ARCH >= 5 && NJ_COMPILER_ARM_ARCH <= 7);
NanoStaticAssert(NJ_COMPILER_ARM_ARCH >= 4 && NJ_COMPILER_ARM_ARCH <= 7);
arm_arch = NJ_COMPILER_ARM_ARCH;
arm_vfp = (arm_arch >= 7);