diff options
Diffstat (limited to 'lang/openjdk8/patches/patch-bi')
-rw-r--r-- | lang/openjdk8/patches/patch-bi | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lang/openjdk8/patches/patch-bi b/lang/openjdk8/patches/patch-bi new file mode 100644 index 00000000000..db0afc2516f --- /dev/null +++ b/lang/openjdk8/patches/patch-bi @@ -0,0 +1,45 @@ +$NetBSD: patch-bi,v 1.1 2015/02/08 08:41:25 tnn Exp $ + +DragonFly support. + +--- hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.orig 2015-02-02 15:32:37.000000000 +0000 ++++ hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp +@@ -96,7 +96,7 @@ + #define SPELL_REG_FP "ebp" + #endif // AMD64 + +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__DragonFly__) + # define context_trapno uc_mcontext.mc_trapno + # ifdef AMD64 + # define context_pc uc_mcontext.mc_rip +@@ -283,13 +283,8 @@ address os::current_stack_pointer() { + register void *esp; + __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); + return (address) esp; +-#elif defined(SPARC_WORKS) +- register void *esp; +- __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp)); +- return (address) ((char*)esp + sizeof(long)*2); + #else +- register void *esp __asm__ (SPELL_REG_SP); +- return (address) esp; ++ return (address)__builtin_frame_address(0); + #endif + } + +@@ -366,13 +361,7 @@ frame os::get_sender_for_C_frame(frame* + } + + intptr_t* _get_previous_fp() { +-#if defined(SPARC_WORKS) || defined(__clang__) || defined(__llvm__) +- register intptr_t **ebp; +- __asm__("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. ++ return (intptr_t *)__builtin_frame_address(1); + } + + |