United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6531696 don't use immediate 16-bits value store to memory on Intel cpus
JDK-6531696 : don't use immediate 16-bits value store to memory on Intel cpus

Details
Type:
Enhancement
Submit Date:
2007-03-06
Status:
Resolved
Updated Date:
2010-04-03
Project Name:
JDK
Resolved Date:
2007-03-15
Component:
hotspot
OS:
solaris_9
Sub-Component:
compiler
CPU:
sparc
Priority:
P2
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
hs10 (b10)

Related Reports
Backport:
Backport:

Sub Tasks

Description
By just adding the next predicate to avoid generation of immediate 16-bits stores
I got +5% jbb2005 on woodcrest:

  // Store Short/Char Immediate
  instruct storeImmI16(memory mem, immI16 src) %{
+   predicate(UseImm16ForStore);
    match(Set mem (StoreC mem src));

    ins_cost(150);
    format %{ "MOV16  $mem,$src" %}
    opcode(0xC7);     /* C7 /0 Same as 32 store immediate with prefix */
    ins_encode( SizePrefix, OpcP, RMopc_Mem(0x00,mem),  Con16( src ));
    ins_pipe( ialu_mem_imm );
  %}


hsdev-3% sh compare ref.jbb.n2 ref.jbb.n2_n16s
============================================================================
ref.jbb.n2
  Benchmark         Samples        Mean     Stdev             Geomean Weight
  specjbb2000            20   120380.43    591.43
  specjbb2005            20    51259.08    741.56
============================================================================
ref.jbb.n2_n16s
  Benchmark         Samples        Mean     Stdev   %Diff    P   Significant
  specjbb2000            20   122106.15    856.48    1.43 0.000          Yes
  specjbb2005            20    54137.34    989.22    5.62 0.000          Yes
============================================================================

                                    

Comments
SUGGESTED FIX

Webrev:                 http://prt-web.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2007/20070307093536.kvn.6531696/workspace/webrevs/webrev-2007.03.07/index.html

Solution:
Don't use such store on Intel's cpu.
                                     
2007-03-07
EVALUATION

don't use immediate 16-bits value store to memory on Intel cpus
                                     
2007-03-07



Hardware and Software, Engineered to Work Together