< prev index next >

src/hotspot/cpu/x86/stubGenerator_x86_32.cpp

Print this page

        

@@ -26,11 +26,10 @@
 #include "asm/macroAssembler.hpp"
 #include "asm/macroAssembler.inline.hpp"
 #include "gc/shared/barrierSet.hpp"
 #include "gc/shared/barrierSetAssembler.hpp"
 #include "interpreter/interpreter.hpp"
-#include "memory/universe.hpp"
 #include "nativeInst_x86.hpp"
 #include "oops/instanceOop.hpp"
 #include "oops/method.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "oops/oop.inline.hpp"

@@ -601,63 +600,11 @@
 
     __ ret(0);
 
     return start;
   }
-  //---------------------------------------------------------------------------------------------------
 
-  address generate_vector_mask(const char *stub_name, int32_t mask) {
-    __ align(CodeEntryAlignment);
-    StubCodeMark mark(this, "StubRoutines", stub_name);
-    address start = __ pc();
-
-    for (int i = 0; i < 16; i++) {
-      __ emit_data(mask, relocInfo::none, 0);
-    }
-
-    return start;
-  }
-
-  address generate_vector_mask_long_double(const char *stub_name, int32_t maskhi, int32_t masklo) {
-    __ align(CodeEntryAlignment);
-    StubCodeMark mark(this, "StubRoutines", stub_name);
-    address start = __ pc();
-
-    for (int i = 0; i < 8; i++) {
-      __ emit_data(masklo, relocInfo::none, 0);
-      __ emit_data(maskhi, relocInfo::none, 0);
-    }
-
-    return start;
-  }
-
-  //----------------------------------------------------------------------------------------------------
-
-  address generate_vector_byte_perm_mask(const char *stub_name) {
-    __ align(CodeEntryAlignment);
-    StubCodeMark mark(this, "StubRoutines", stub_name);
-    address start = __ pc();
-
-    __ emit_data(0x00000001, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000003, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000005, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000007, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000002, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000004, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-    __ emit_data(0x00000006, relocInfo::none, 0);
-    __ emit_data(0x00000000, relocInfo::none, 0);
-
-    return start;
-  }
 
   //----------------------------------------------------------------------------------------------------
   // Non-destructive plausibility checks for oops
 
   address generate_verify_oop() {

@@ -3019,23 +2966,26 @@
     const XMMRegister msg3 = xmm6;
     const XMMRegister shuf_mask = xmm7;
 
     __ enter();
     __ subptr(rsp, 8 * wordSize);
-    handleSOERegisters(true /*saving*/);
-
+    if (multi_block) {
+      __ push(limit);
+    }
     __ movptr(buf, buf_param);
     __ movptr(state, state_param);
     if (multi_block) {
       __ movptr(ofs, ofs_param);
       __ movptr(limit, limit_param);
     }
 
     __ fast_sha1(abcd, e0, e1, msg0, msg1, msg2, msg3, shuf_mask,
       buf, state, ofs, limit, rsp, multi_block);
 
-    handleSOERegisters(false /*restoring*/);
+    if (multi_block) {
+      __ pop(limit);
+    }
     __ addptr(rsp, 8 * wordSize);
     __ leave();
     __ ret(0);
     return start;
   }

@@ -3874,18 +3824,10 @@
     StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call));
 
     //------------------------------------------------------------------------------------------------------------------------
     // entry points that are platform specific
 
-    StubRoutines::x86::_vector_float_sign_mask = generate_vector_mask("vector_float_sign_mask", 0x7FFFFFFF);
-    StubRoutines::x86::_vector_float_sign_flip = generate_vector_mask("vector_float_sign_flip", 0x80000000);
-    StubRoutines::x86::_vector_double_sign_mask = generate_vector_mask_long_double("vector_double_sign_mask", 0x7FFFFFFF, 0xFFFFFFFF);
-    StubRoutines::x86::_vector_double_sign_flip = generate_vector_mask_long_double("vector_double_sign_flip", 0x80000000, 0x00000000);
-    StubRoutines::x86::_vector_short_to_byte_mask = generate_vector_mask("vector_short_to_byte_mask", 0x00ff00ff);
-    StubRoutines::x86::_vector_byte_perm_mask = generate_vector_byte_perm_mask("vector_byte_perm_mask");
-    StubRoutines::x86::_vector_long_sign_mask = generate_vector_mask_long_double("vector_long_sign_mask", 0x80000000, 0x00000000);
-
     // support for verify_oop (must happen after universe_init)
     StubRoutines::_verify_oop_subroutine_entry     = generate_verify_oop();
 
     // arraycopy stubs used by compilers
     generate_arraycopy_stubs();
< prev index next >