pkgsrc/lang/openjdk7/patches/patch-bi
jperkin 8fb76ee717 Add SunOS/GCC support. With huge thanks to "jesse" from #SmartOS who did the
bulk of the porting work.  Tested on SmartOS 32-bit.  64-bit builds currently
fail, they should hopefully be fixed soon.
2013-06-15 09:31:05 +00:00

45 lines
1.3 KiB
Text

$NetBSD: patch-bi,v 1.4 2013/06/15 09:31:05 jperkin Exp $
DragonFly support.
--- hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.orig 2012-08-10 16:24:31.000000000 +0000
+++ hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
@@ -94,7 +94,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
@@ -279,13 +279,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
}
@@ -362,13 +357,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);
}