comparison src/cpu/sparc/vm/sparc.ad @ 20496:318cc6fdae90

8050022: linux-sparcv9: assert(SharedSkipVerify || obj->is_oop()) failed: sanity check Summary: Provide promoted stack slots for floating-point registers in the SPARC c_calling_convention. Reviewed-by: kvn, jrose, drchase
author morris
date Thu, 18 Sep 2014 11:46:33 -0700
parents 85c339200299
children d961743b7897
comparison
equal deleted inserted replaced
20495:58925d1f325e 20496:318cc6fdae90
1987 1987
1988 // Advertise here if the CPU requires explicit rounding operations 1988 // Advertise here if the CPU requires explicit rounding operations
1989 // to implement the UseStrictFP mode. 1989 // to implement the UseStrictFP mode.
1990 const bool Matcher::strict_fp_requires_explicit_rounding = false; 1990 const bool Matcher::strict_fp_requires_explicit_rounding = false;
1991 1991
1992 // Are floats conerted to double when stored to stack during deoptimization? 1992 // Are floats converted to double when stored to stack during deoptimization?
1993 // Sparc does not handle callee-save floats. 1993 // Sparc does not handle callee-save floats.
1994 bool Matcher::float_in_double() { return false; } 1994 bool Matcher::float_in_double() { return false; }
1995 1995
1996 // Do ints take an entire long register or just half? 1996 // Do ints take an entire long register or just half?
1997 // Note that we if-def off of _LP64. 1997 // Note that we if-def off of _LP64.
3216 // Note 2: If the calling convention leaves holes in the incoming argument 3216 // Note 2: If the calling convention leaves holes in the incoming argument
3217 // area, those holes are owned by SELF. Holes in the outgoing area 3217 // area, those holes are owned by SELF. Holes in the outgoing area
3218 // are owned by the CALLEE. Holes should not be nessecary in the 3218 // are owned by the CALLEE. Holes should not be nessecary in the
3219 // incoming area, as the Java calling convention is completely under 3219 // incoming area, as the Java calling convention is completely under
3220 // the control of the AD file. Doubles can be sorted and packed to 3220 // the control of the AD file. Doubles can be sorted and packed to
3221 // avoid holes. Holes in the outgoing arguments may be nessecary for 3221 // avoid holes. Holes in the outgoing arguments may be necessary for
3222 // varargs C calling conventions. 3222 // varargs C calling conventions.
3223 // Note 3: Region 0-3 is even aligned, with pad2 as needed. Region 3-5 is 3223 // Note 3: Region 0-3 is even aligned, with pad2 as needed. Region 3-5 is
3224 // even aligned with pad0 as needed. 3224 // even aligned with pad0 as needed.
3225 // Region 6 is even aligned. Region 6-7 is NOT even aligned; 3225 // Region 6 is even aligned. Region 6-7 is NOT even aligned;
3226 // region 6-11 is even aligned; it may be padded out more so that 3226 // region 6-11 is even aligned; it may be padded out more so that
3282 (void) SharedRuntime::java_calling_convention(sig_bt, regs, length, is_outgoing); 3282 (void) SharedRuntime::java_calling_convention(sig_bt, regs, length, is_outgoing);
3283 3283
3284 %} 3284 %}
3285 3285
3286 // Body of function which returns an OptoRegs array locating 3286 // Body of function which returns an OptoRegs array locating
3287 // arguments either in registers or in stack slots for callin 3287 // arguments either in registers or in stack slots for calling
3288 // C. 3288 // C.
3289 c_calling_convention %{ 3289 c_calling_convention %{
3290 // This is obviously always outgoing 3290 // This is obviously always outgoing
3291 (void) SharedRuntime::c_calling_convention(sig_bt, regs, /*regs2=*/NULL, length); 3291 (void) SharedRuntime::c_calling_convention(sig_bt, regs, /*regs2=*/NULL, length);
3292 %} 3292 %}