United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7081926 assert(VM_Version::supports_sse2()) failed: must support
JDK-7081926 : assert(VM_Version::supports_sse2()) failed: must support

Details
Type:
Bug
Submit Date:
2011-08-22
Status:
Closed
Updated Date:
2011-11-25
Project Name:
JDK
Resolved Date:
2011-09-30
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs22
Fixed Versions:
hs22 (b03)

Related Reports
Backport:
Backport:
Backport:
Relates:

Sub Tasks

Description
Regression after my fix for 7079329: Adjust allocation prefetching for T4. The failure happened when VM runs on old Pentium III which does not have SSE2:

CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 11 stepping 1, cmov, cx8, fxsr, mmx, sse

V  [libjvm.so+0xb1528e]  void report_vm_error(const char*,int,const char*,const char*)+0x53a;;  void report_vm_error(const char*,int,const char*,const char*)+0x53a
V  [libjvm.so+0x4bc98d]  void Assembler::prefetchnta(Address)+0x179;;  void Assembler::prefetchnta(Address)+0x179
V  [libjvm.so+0x27ca91]  void prefetchAllocNTANode::emit(CodeBuffer&,PhaseRegAlloc*)const+0x159;;  void prefetchAllocNTANode::emit(CodeBuffer&,PhaseRegAlloc*)const+0x159
V  [libjvm.so+0x9cb287]  unsigned Compile::scratch_emit_size(const Node*)+0x42b;;  unsigned Compile::scratch_emit_size(const Node*)+0x42b
V  [libjvm.so+0x164a58a]  unsigned MachNode::size(PhaseRegAlloc*)const+0x2e;;  unsigned MachNode::size(PhaseRegAlloc*)const+0x2e
V  [libjvm.so+0x18ff7b9]  void Compile::shorten_branches(unsigned*,int&,int&,int&)+0x491;;  void Compile::shorten_branches(unsigned*,int&,int&,int&)+0x491
V  [libjvm.so+0x1903673]  CodeBuffer*Compile::init_buffer(unsigned*)+0x333;;  CodeBuffer*Compile::init_buffer(unsigned*)+0x333
V  [libjvm.so+0x18fe509]  void Compile::Output()+0x925;;  void Compile::Output()+0x925
V  [libjvm.so+0x9d6753]  void Compile::Code_Gen()+0x753;;  void Compile::Code_Gen()+0x753

                                    

Comments
EVALUATION

Changes in 7079329 (use MacroAssembler prefetch instructions in x86 .ad files) exposed typo in this assert, prefetchnta is supported since SSE not SSE2:

void Assembler::prefetchnta(Address src) {
  NOT_LP64(assert(VM_Version::supports_sse2(), "must support"));
                                     
2011-08-22
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a594deb1d6dc
                                     
2011-08-23
EVALUATION

See main CR
                                     
2011-09-12



Hardware and Software, Engineered to Work Together