comparison src/cpu/sparc/vm/sparc.ad @ 5432:c7f740ad8991

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 179c1940854f
children de5e8c8a9b87
comparison
equal deleted inserted replaced
79:a08bac2d93c7 80:1422636c6a66
1976 1976
1977 // Advertise here if the CPU requires explicit rounding operations 1977 // Advertise here if the CPU requires explicit rounding operations
1978 // to implement the UseStrictFP mode. 1978 // to implement the UseStrictFP mode.
1979 const bool Matcher::strict_fp_requires_explicit_rounding = false; 1979 const bool Matcher::strict_fp_requires_explicit_rounding = false;
1980 1980
1981 // Are floats conerted to double when stored to stack during deoptimization? 1981 // Are floats converted to double when stored to stack during deoptimization?
1982 // Sparc does not handle callee-save floats. 1982 // Sparc does not handle callee-save floats.
1983 bool Matcher::float_in_double() { return false; } 1983 bool Matcher::float_in_double() { return false; }
1984 1984
1985 // Do ints take an entire long register or just half? 1985 // Do ints take an entire long register or just half?
1986 // Note that we if-def off of _LP64. 1986 // Note that we if-def off of _LP64.
3214 // Note 2: If the calling convention leaves holes in the incoming argument 3214 // Note 2: If the calling convention leaves holes in the incoming argument
3215 // area, those holes are owned by SELF. Holes in the outgoing area 3215 // area, those holes are owned by SELF. Holes in the outgoing area
3216 // are owned by the CALLEE. Holes should not be nessecary in the 3216 // are owned by the CALLEE. Holes should not be nessecary in the
3217 // incoming area, as the Java calling convention is completely under 3217 // incoming area, as the Java calling convention is completely under
3218 // the control of the AD file. Doubles can be sorted and packed to 3218 // the control of the AD file. Doubles can be sorted and packed to
3219 // avoid holes. Holes in the outgoing arguments may be nessecary for 3219 // avoid holes. Holes in the outgoing arguments may be necessary for
3220 // varargs C calling conventions. 3220 // varargs C calling conventions.
3221 // Note 3: Region 0-3 is even aligned, with pad2 as needed. Region 3-5 is 3221 // Note 3: Region 0-3 is even aligned, with pad2 as needed. Region 3-5 is
3222 // even aligned with pad0 as needed. 3222 // even aligned with pad0 as needed.
3223 // Region 6 is even aligned. Region 6-7 is NOT even aligned; 3223 // Region 6 is even aligned. Region 6-7 is NOT even aligned;
3224 // region 6-11 is even aligned; it may be padded out more so that 3224 // region 6-11 is even aligned; it may be padded out more so that
3280 (void) SharedRuntime::java_calling_convention(sig_bt, regs, length, is_outgoing); 3280 (void) SharedRuntime::java_calling_convention(sig_bt, regs, length, is_outgoing);
3281 3281
3282 %} 3282 %}
3283 3283
3284 // Body of function which returns an OptoRegs array locating 3284 // Body of function which returns an OptoRegs array locating
3285 // arguments either in registers or in stack slots for callin 3285 // arguments either in registers or in stack slots for calling
3286 // C. 3286 // C.
3287 c_calling_convention %{ 3287 c_calling_convention %{
3288 // This is obviously always outgoing 3288 // This is obviously always outgoing
3289 (void) SharedRuntime::c_calling_convention(sig_bt, regs, length); 3289 (void) SharedRuntime::c_calling_convention(sig_bt, regs, length);
3290 %} 3290 %}