src/os_cpu/linux_x86/vm/os_linux_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8015252 Cdiff src/os_cpu/linux_x86/vm/os_linux_x86.cpp

src/os_cpu/linux_x86/vm/os_linux_x86.cpp

Print this page

        

*** 91,100 **** --- 91,104 ---- address os::current_stack_pointer() { #ifdef SPARC_WORKS register void *esp; __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); return (address) ((char*)esp + sizeof(long)*2); + #elif defined(__clang__) + intptr_t* esp; + __asm__ __volatile__ ("mov %%"SPELL_REG_SP", %0":"=r"(esp):); + return (address) esp; #else register void *esp __asm__ (SPELL_REG_SP); return (address) esp; #endif }
*** 173,182 **** --- 177,189 ---- intptr_t* _get_previous_fp() { #ifdef SPARC_WORKS register intptr_t **ebp; __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp)); + #elif defined(__clang__) + intptr_t **ebp; + __asm__ __volatile__ ("mov %%"SPELL_REG_FP", %0":"=r"(ebp):); #else register intptr_t **ebp __asm__ (SPELL_REG_FP); #endif return (intptr_t*) *ebp; // we want what it points to. }
src/os_cpu/linux_x86/vm/os_linux_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File