1.1 --- a/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Tue Jun 04 12:06:54 2013 -0700 1.2 +++ b/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Tue Jun 04 22:16:15 2013 -0700 1.3 @@ -93,6 +93,10 @@ 1.4 register void *esp; 1.5 __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); 1.6 return (address) ((char*)esp + sizeof(long)*2); 1.7 +#elif defined(__clang__) 1.8 + intptr_t* esp; 1.9 + __asm__ __volatile__ ("mov %%"SPELL_REG_SP", %0":"=r"(esp):); 1.10 + return (address) esp; 1.11 #else 1.12 register void *esp __asm__ (SPELL_REG_SP); 1.13 return (address) esp; 1.14 @@ -175,6 +179,9 @@ 1.15 #ifdef SPARC_WORKS 1.16 register intptr_t **ebp; 1.17 __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp)); 1.18 +#elif defined(__clang__) 1.19 + intptr_t **ebp; 1.20 + __asm__ __volatile__ ("mov %%"SPELL_REG_FP", %0":"=r"(ebp):); 1.21 #else 1.22 register intptr_t **ebp __asm__ (SPELL_REG_FP); 1.23 #endif