src/os_cpu/linux_x86/vm/os_linux_x86.cpp

changeset 5230
2cb5d5f6d5e5
parent 4993
746b070f5022
child 5302
9ba41a4a71ff
     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

mercurial