Mercurial > hg > truffle
comparison src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp @ 4006:436b4a3231bf
7098194: integrate macosx-port changes
Summary: Integrate bsd-port/hotspot and macosx-port/hotspot changes as of 2011.09.29.
Reviewed-by: kvn, dholmes, never, phh
Contributed-by: Christos Zoulas <christos@zoulas.com>, Greg Lewis <glewis@eyesbeyond.com>, Kurt Miller <kurt@intricatesoftware.com>, Alexander Strange <astrange@apple.com>, Mike Swingler <swingler@apple.com>, Roger Hoover <rhoover@apple.com>, Victor Hernandez <vhernandez@apple.com>, Pratik Solanki <psolanki@apple.com>
author | dcubed |
---|---|
date | Thu, 13 Oct 2011 09:35:42 -0700 |
parents | f08d439fab8c |
children | 5e9fba4e8718 |
comparison
equal
deleted
inserted
replaced
4005:2ef3386478e6 | 4006:436b4a3231bf |
---|---|
273 # define context_trapno uc_mcontext.__gregs[_REG_TRAPNO] | 273 # define context_trapno uc_mcontext.__gregs[_REG_TRAPNO] |
274 # endif | 274 # endif |
275 #endif | 275 #endif |
276 | 276 |
277 address os::current_stack_pointer() { | 277 address os::current_stack_pointer() { |
278 #ifdef SPARC_WORKS | 278 #if defined(__clang__) || defined(__llvm__) |
279 register void *esp; | |
280 __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); | |
281 return (address) esp; | |
282 #elif defined(SPARC_WORKS) | |
279 register void *esp; | 283 register void *esp; |
280 __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); | 284 __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); |
281 return (address) ((char*)esp + sizeof(long)*2); | 285 return (address) ((char*)esp + sizeof(long)*2); |
282 #else | 286 #else |
283 register void *esp __asm__ (SPELL_REG_SP); | 287 register void *esp __asm__ (SPELL_REG_SP); |
356 frame os::get_sender_for_C_frame(frame* fr) { | 360 frame os::get_sender_for_C_frame(frame* fr) { |
357 return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); | 361 return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); |
358 } | 362 } |
359 | 363 |
360 intptr_t* _get_previous_fp() { | 364 intptr_t* _get_previous_fp() { |
361 #ifdef SPARC_WORKS | 365 #if defined(SPARC_WORKS) || defined(__clang__) |
362 register intptr_t **ebp; | 366 register intptr_t **ebp; |
363 __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp)); | 367 __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp)); |
364 #else | 368 #else |
365 register intptr_t **ebp __asm__ (SPELL_REG_FP); | 369 register intptr_t **ebp __asm__ (SPELL_REG_FP); |
366 #endif | 370 #endif |