Mercurial > hg > graal-compiler
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 %} |