comparison src/os_cpu/linux_x86/vm/os_linux_x86.cpp @ 10398:2cb5d5f6d5e5

8015252: Enable HotSpot build with Clang Reviewed-by: twisti, dholmes, kvn
author simonis
date Tue, 04 Jun 2013 22:16:15 -0700
parents 746b070f5022
children 836a62f43af9 9ba41a4a71ff
comparison
equal deleted inserted replaced
10397:075ea888b039 10398:2cb5d5f6d5e5
91 address os::current_stack_pointer() { 91 address os::current_stack_pointer() {
92 #ifdef SPARC_WORKS 92 #ifdef SPARC_WORKS
93 register void *esp; 93 register void *esp;
94 __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); 94 __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
95 return (address) ((char*)esp + sizeof(long)*2); 95 return (address) ((char*)esp + sizeof(long)*2);
96 #elif defined(__clang__)
97 intptr_t* esp;
98 __asm__ __volatile__ ("mov %%"SPELL_REG_SP", %0":"=r"(esp):);
99 return (address) esp;
96 #else 100 #else
97 register void *esp __asm__ (SPELL_REG_SP); 101 register void *esp __asm__ (SPELL_REG_SP);
98 return (address) esp; 102 return (address) esp;
99 #endif 103 #endif
100 } 104 }
173 177
174 intptr_t* _get_previous_fp() { 178 intptr_t* _get_previous_fp() {
175 #ifdef SPARC_WORKS 179 #ifdef SPARC_WORKS
176 register intptr_t **ebp; 180 register intptr_t **ebp;
177 __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp)); 181 __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
182 #elif defined(__clang__)
183 intptr_t **ebp;
184 __asm__ __volatile__ ("mov %%"SPELL_REG_FP", %0":"=r"(ebp):);
178 #else 185 #else
179 register intptr_t **ebp __asm__ (SPELL_REG_FP); 186 register intptr_t **ebp __asm__ (SPELL_REG_FP);
180 #endif 187 #endif
181 return (intptr_t*) *ebp; // we want what it points to. 188 return (intptr_t*) *ebp; // we want what it points to.
182 } 189 }