United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7011463 Sparc MacroAssembler::incr_allocated_bytes() needs a RegisterOrConstant argument
JDK-7011463 : Sparc MacroAssembler::incr_allocated_bytes() needs a RegisterOrConstant argument

Details
Type:
Bug
Submit Date:
2011-01-11
Status:
Closed
Updated Date:
2011-04-23
Project Name:
JDK
Resolved Date:
2011-04-23
Component:
hotspot
OS:
solaris
Sub-Component:
runtime
CPU:
sparc
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs20
Fixed Versions:
hs20 (b07)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
The fix for 7003271 added an new method, MacroAssembler::incr_allocated_bytes(),
that increments a per-thread running total of allocated-on-the-Java-heap bytes
for the case of direct allocation in eden or the old generation.  The code does
not account for a constant size being out of range of a simm13 and thus needing
to be loaded into a register before use, resulting in guarantee failures when
generating an add instruction.

                                    

Comments
EVALUATION

Ok.
                                     
2011-01-11
SUGGESTED FIX

Replace the the 2 size arguments to incr_allocated_bytes() with a RegisterOrConstant
argument and use the Assembler::add() method that accepts a RegisterOrConstant
argument.
                                     
2011-01-11
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/5577848f5923
                                     
2011-01-12
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/5577848f5923
                                     
2011-01-14



Hardware and Software, Engineered to Work Together