1.1 --- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Mon Sep 17 17:02:10 2012 -0700 1.2 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Mon Sep 17 19:39:07 2012 -0700 1.3 @@ -313,6 +313,14 @@ 1.4 1.5 } 1.6 1.7 +// Is vector's size (in bytes) bigger than a size saved by default? 1.8 +// 8 bytes FP registers are saved by default on SPARC. 1.9 +bool SharedRuntime::is_wide_vector(int size) { 1.10 + // Note, MaxVectorSize == 8 on SPARC. 1.11 + assert(size <= 8, err_msg_res("%d bytes vectors are not supported", size)); 1.12 + return size > 8; 1.13 +} 1.14 + 1.15 // The java_calling_convention describes stack locations as ideal slots on 1.16 // a frame with no abi restrictions. Since we must observe abi restrictions 1.17 // (like the placement of the register window) the slots must be biased by 1.18 @@ -3734,7 +3742,7 @@ 1.19 // the 64-bit %o's, then do a save, then fixup the caller's SP (our FP). 1.20 // Tricky, tricky, tricky... 1.21 1.22 -SafepointBlob* SharedRuntime::generate_handler_blob(address call_ptr, bool cause_return) { 1.23 +SafepointBlob* SharedRuntime::generate_handler_blob(address call_ptr, int poll_type) { 1.24 assert (StubRoutines::forward_exception_entry() != NULL, "must be generated before"); 1.25 1.26 // allocate space for the code 1.27 @@ -3752,6 +3760,7 @@ 1.28 1.29 int start = __ offset(); 1.30 1.31 + bool cause_return = (poll_type == POLL_AT_RETURN); 1.32 // If this causes a return before the processing, then do a "restore" 1.33 if (cause_return) { 1.34 __ restore();