Fixed: Re: amd64 and Intel processors problem (was: Re: jdk15 fail compile under amd64)

huang wen hui huanghwh at yahoo.com
Sat Jan 22 20:02:29 PST 2005


 --- Alexey Zelkin <phantom at FreeBSD.org.ua> µÄÕýÎÄ£º
> hi,
> 
> Thank you for posting of your dmesg and backtraces. 
> They described
> a problem.
> 
> Unfortunatelly, JVM building/built for amd64,
> expects to be running
> at real amd64 hardware.  And in your case, you're
> using Intel hardware
> running in amd64 emulation mode (as far as I
> understand).
> 
> At this point -- it's impossible to use such
> combination, sorry.
ok, from search web, the problem is Intel EM64T does
not suport 3DNow:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5095421
http://www.blackdown.org/java-linux/java-linux@java.blackdown.org/java-linux-msg00159.html

and from jdk16,this problem can be fixed:
---
../../hotspot/src/os_cpu/bsd_amd64/vm/prefetch_bsd_amd64.inline.hpp~
       Fri Jan 21 12:10:42 2005
+++
../../hotspot/src/os_cpu/bsd_amd64/vm/prefetch_bsd_amd64.inline.hpp
Sun Jan 23 09:37:34 2005
@@ -16,6 +16,10 @@
   // Force prefetchw.  The gcc builtin produces
prefetcht0 or prefetchw
   // depending on command line switches we don't
control here.
   // Use of this method should be gated by
VM_Version::has_prefetchw.
-  __asm__ ("prefetchw (%0,%1,1)" : : "r" (loc), "r"
(interval));
+  //__asm__ ("prefetchw (%0,%1,1)" : : "r" (loc), "r"
(interval));
   //  __builtin_prefetch((char*) loc + interval, 1);
// prefetcht0/prefetchw (%rsi,%rdi,1)
+  // Do not use the 3dnow prefetchw instruction.  It
isn't supported on em64t.
+  //  __asm__ ("prefetchw (%0,%1,1)" : : "r" (loc),
"r" (interval));
+  __asm__ ("prefetcht0 (%0,%1,1)" : : "r" (loc), "r"
(interval));
+
 }

Now, I can use JDK1.5 on my PE1850:)

--hwh




_________________________________________________________
Do You Yahoo!? 
ÏÓÓÊÏä̫С£¿ÑÅ»¢µçÓÊ×ÔÖúÀ©ÈÝ£¡
http://cn.rd.yahoo.com/mail_cn/tag/10m/*http://cn.mail.yahoo.com/event/10m.html


More information about the freebsd-java mailing list