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