|
Quick Lists
|
|
Bug ID:
|
6531696
|
|
Votes
|
0
|
|
Synopsis
|
don't use immediate 16-bits value store to memory on Intel cpus
|
|
Category
|
hotspot:compiler2
|
|
Reported Against
|
|
|
Release Fixed
|
hs10(b10),
6u2(b01) (Bug ID:2147387)
, 7(b10) (Bug ID:2176879)
|
|
State
|
10-Fix Delivered,
request for enhancement
|
|
Priority:
|
2-High
|
|
Related Bugs
|
|
|
Submit Date
|
06-MAR-2007
|
|
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
============================================================================
Posted Date : 2007-03-06 22:42:15.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
don't use immediate 16-bits value store to memory on Intel cpus
Posted Date : 2007-03-07 00:48:22.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |