src/cpu/sparc/vm/sharedRuntime_sparc.cpp

changeset 4103
137868b7aa6f
parent 4101
2cb2f30450c7
child 4251
18fb7da42534
     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();

mercurial