summaryrefslogtreecommitdiff
path: root/java/openjit/files/patch-rt-X86.c
diff options
context:
space:
mode:
authorGreg Lewis <glewis@FreeBSD.org>2003-10-17 06:35:54 +0000
committerGreg Lewis <glewis@FreeBSD.org>2003-10-17 06:35:54 +0000
commit367cb1bae4bf2e1225a3ee235cb36ceae6f7046a (patch)
treec9391273946da4517148a65ec5629e15154d45ad /java/openjit/files/patch-rt-X86.c
parentAdd p5-Text-Netstring 0.04, (diff)
. Update to 1.1.16.
. Allow build with any native JDK, not just 1.1.8. The default is the Diablo Caffe JDK. This part should be revisited once bsd.java.mk 2.0 hits the scene. One could also consider doing it so it could install for all the native JDKs, not just one at a time. . Fix build on 5.x. . Respect NOPORTDOCS.
Notes
Notes: svn path=/head/; revision=91478
Diffstat (limited to '')
-rw-r--r--java/openjit/files/patch-rt-X86.c263
1 files changed, 263 insertions, 0 deletions
diff --git a/java/openjit/files/patch-rt-X86.c b/java/openjit/files/patch-rt-X86.c
new file mode 100644
index 000000000000..7da35fc10daf
--- /dev/null
+++ b/java/openjit/files/patch-rt-X86.c
@@ -0,0 +1,263 @@
+$FreeBSD$
+
+--- rt-X86.c.orig Thu Oct 16 20:16:17 2003
++++ rt-X86.c Thu Oct 16 20:22:19 2003
+@@ -127,14 +127,14 @@
+ #define ASM __asm__ volatile
+
+ #ifdef SYM_UNDERSCORE
+-__asm__("
+-_OpenJIT_f2i = OpenJIT_f2i
+-_OpenJIT_d2i = OpenJIT_f2i
+-_OpenJIT_f2l = OpenJIT_f2l
+-_OpenJIT_d2l = OpenJIT_d2l
+-_OpenJIT_invokeinterface_quick = OpenJIT_invokeinterface_quick
+-_throw_internal = throw_internal
+-");
++__asm__(
++"_OpenJIT_f2i = OpenJIT_f2i\n"
++"_OpenJIT_d2i = OpenJIT_f2i\n"
++"_OpenJIT_f2l = OpenJIT_f2l\n"
++"_OpenJIT_d2l = OpenJIT_d2l\n"
++"_OpenJIT_invokeinterface_quick = OpenJIT_invokeinterface_quick\n"
++"_throw_internal = throw_internal\n"
++);
+ #define ASM_TEXT_LABEL(X) __asm__(".text\n_" #X ":\n");
+ #else
+ #define ASM_TEXT_LABEL(X) __asm__(".text\n" #X ":\n");
+@@ -2051,107 +2051,107 @@
+ extern int OpenJIT_d2i(); /* One arg is passed via floating ST(0) */
+ extern int64_t OpenJIT_f2l(float f);
+ extern int64_t OpenJIT_d2l(double d);
+-__asm__("
+-OpenJIT_d2i = OpenJIT_f2i
+-.text
+- .align 4
+- .type OpenJIT_f2i,@function
+-OpenJIT_f2i:
+- pushl %ebp
+- movl %esp,%ebp
+- subl $8,%esp
+- ftst
+- fnstcw -4(%ebp)
+- movl -4(%ebp),%eax
+- movb $0xc,%ah
+- movw %ax,-2(%ebp)
+- fldcw -2(%ebp)
+- fistpl -8(%ebp)
+- fldcw -4(%ebp)
+- movl -8(%ebp),%eax
+- cmp $0x80000000,%eax
+- je IntOverFlow
+- leave
+- ret
+-
+-IntOverFlow:
+- fnstsw
+- sahf
+- jp IntNaN
+- movl $0x80000000,%eax
+- adcl $-1,%eax
+- leave
+- ret
+-IntNaN:
+- xorl %eax,%eax
+- leave
+- ret
+-
+-.text
+- .align 4
+- .type OpenJIT_f2l,@function
+-OpenJIT_f2l:
+- pushl %ebp
+- movl %esp,%ebp
+- subl $12,%esp
+- flds 8(%ebp)
+- ftst
+- fnstcw -4(%ebp)
+- movl -4(%ebp),%eax
+- movb $0xc,%ah
+- movw %ax,-2(%ebp)
+- fldcw -2(%ebp)
+- fistpll -12(%ebp)
+- fldcw -4(%ebp)
+- movl -12(%ebp),%eax
+- movl $0x80000000,%ecx
+- movl -8(%ebp),%edx
+- xorl %edx,%ecx
+- orl %eax,%ecx
+- je LongOverFlow
+- leave
+- ret
+-
+- .align 4
+- .type OpenJIT_d2l,@function
+-OpenJIT_d2l:
+- pushl %ebp
+- movl %esp,%ebp
+- subl $12,%esp
+- fldl 8(%ebp)
+- ftst
+- fnstcw -4(%ebp)
+- movl -4(%ebp),%eax
+- movb $0xc,%ah
+- movw %ax,-2(%ebp)
+- fldcw -2(%ebp)
+- fistpll -12(%ebp)
+- fldcw -4(%ebp)
+- movl -12(%ebp),%eax
+- movl $0x80000000,%ecx
+- movl -8(%ebp),%edx
+- xorl %edx,%ecx
+- orl %eax,%ecx
+- je LongOverFlow
+- leave
+- ret
+-
+-LongOverFlow:
+- fnstsw
+- sahf
+- jp LongNaN
+- movl $0,%eax
+- adcl $-1,%eax
+- adcl $-1,%edx
+- leave
+- ret
+-
+-LongNaN:
+- xorl %eax,%eax
+- xorl %edx,%edx
+- leave
+- ret
+-");
++__asm__(
++"OpenJIT_d2i = OpenJIT_f2i\n"
++".text\n"
++" .align 4\n"
++" .type OpenJIT_f2i,@function\n"
++"OpenJIT_f2i:\n"
++" pushl %ebp\n"
++" movl %esp,%ebp\n"
++" subl $8,%esp\n"
++" ftst\n"
++" fnstcw -4(%ebp)\n"
++" movl -4(%ebp),%eax\n"
++" movb $0xc,%ah\n"
++" movw %ax,-2(%ebp)\n"
++" fldcw -2(%ebp)\n"
++" fistpl -8(%ebp)\n"
++" fldcw -4(%ebp)\n"
++" movl -8(%ebp),%eax\n"
++" cmp $0x80000000,%eax\n"
++" je IntOverFlow\n"
++" leave\n"
++" ret\n"
++"\n"
++"IntOverFlow:\n"
++" fnstsw\n"
++" sahf\n"
++" jp IntNaN\n"
++" movl $0x80000000,%eax\n"
++" adcl $-1,%eax\n"
++" leave\n"
++" ret\n"
++"IntNaN:\n"
++" xorl %eax,%eax\n"
++" leave\n"
++" ret\n"
++"\n"
++".text\n"
++" .align 4\n"
++" .type OpenJIT_f2l,@function\n"
++"OpenJIT_f2l:\n"
++" pushl %ebp\n"
++" movl %esp,%ebp\n"
++" subl $12,%esp\n"
++" flds 8(%ebp)\n"
++" ftst\n"
++" fnstcw -4(%ebp)\n"
++" movl -4(%ebp),%eax\n"
++" movb $0xc,%ah\n"
++" movw %ax,-2(%ebp)\n"
++" fldcw -2(%ebp)\n"
++" fistpll -12(%ebp)\n"
++" fldcw -4(%ebp)\n"
++" movl -12(%ebp),%eax\n"
++" movl $0x80000000,%ecx\n"
++" movl -8(%ebp),%edx\n"
++" xorl %edx,%ecx\n"
++" orl %eax,%ecx\n"
++" je LongOverFlow\n"
++" leave\n"
++" ret\n"
++"\n"
++" .align 4\n"
++" .type OpenJIT_d2l,@function\n"
++"OpenJIT_d2l:\n"
++" pushl %ebp\n"
++" movl %esp,%ebp\n"
++" subl $12,%esp\n"
++" fldl 8(%ebp)\n"
++" ftst\n"
++" fnstcw -4(%ebp)\n"
++" movl -4(%ebp),%eax\n"
++" movb $0xc,%ah\n"
++" movw %ax,-2(%ebp)\n"
++" fldcw -2(%ebp)\n"
++" fistpll -12(%ebp)\n"
++" fldcw -4(%ebp)\n"
++" movl -12(%ebp),%eax\n"
++" movl $0x80000000,%ecx\n"
++" movl -8(%ebp),%edx\n"
++" xorl %edx,%ecx\n"
++" orl %eax,%ecx\n"
++" je LongOverFlow\n"
++" leave\n"
++" ret\n"
++"\n"
++"LongOverFlow:\n"
++" fnstsw\n"
++" sahf\n"
++" jp LongNaN\n"
++" movl $0,%eax\n"
++" adcl $-1,%eax\n"
++" adcl $-1,%edx\n"
++" leave\n"
++" ret\n"
++"\n"
++"LongNaN:\n"
++" xorl %eax,%eax\n"
++" xorl %edx,%edx\n"
++" leave\n"
++" ret\n"
++);
+
+ static int64_t
+ OpenJIT_lshr(int64_t ll, unsigned b)
+@@ -2383,16 +2383,16 @@
+ }
+
+ extern void throw_internal();
+-__asm__("
+-.text
+- .align 4
+- .type throw_internal,@function
+-throw_internal:
+- pushl %eax
+- jmp *%edx
+-.Lfe_throw_internal:
+- .size throw_internal,.Lfe_throw_internal-throw_internal
+-");
++__asm__(
++".text\n"
++" .align 4\n"
++" .type throw_internal,@function\n"
++"throw_internal:\n"
++" pushl %eax\n"
++" jmp *%edx\n"
++".Lfe_throw_internal:\n"
++" .size throw_internal,.Lfe_throw_internal-throw_internal\n"
++);
+
+ #if defined(__linux__)
+ static int signal_nest_count = -1;