src/share/vm/runtime/stubRoutines.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/runtime/stubRoutines.hpp	Mon Feb 28 18:56:43 2011
--- new/src/share/vm/runtime/stubRoutines.hpp	Mon Feb 28 18:56:43 2011

*** 1,7 **** --- 1,7 ---- /* ! * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 162,195 **** --- 162,195 ---- // arraycopy operands aligned on element type boundary static address _jbyte_arraycopy; static address _jshort_arraycopy; static address _jint_arraycopy; static address _jlong_arraycopy; ! static address _oop_arraycopy, _oop_arraycopy_uninit; static address _jbyte_disjoint_arraycopy; static address _jshort_disjoint_arraycopy; static address _jint_disjoint_arraycopy; static address _jlong_disjoint_arraycopy; ! static address _oop_disjoint_arraycopy, _oop_disjoint_arraycopy_uninit; // arraycopy operands aligned on zero'th element boundary // These are identical to the ones aligned aligned on an // element type boundary, except that they assume that both // source and destination are HeapWord aligned. static address _arrayof_jbyte_arraycopy; static address _arrayof_jshort_arraycopy; static address _arrayof_jint_arraycopy; static address _arrayof_jlong_arraycopy; ! static address _arrayof_oop_arraycopy, _arrayof_oop_arraycopy_uninit; static address _arrayof_jbyte_disjoint_arraycopy; static address _arrayof_jshort_disjoint_arraycopy; static address _arrayof_jint_disjoint_arraycopy; static address _arrayof_jlong_disjoint_arraycopy; ! static address _arrayof_oop_disjoint_arraycopy, _arrayof_oop_disjoint_arraycopy_uninit; // these are recommended but optional: ! static address _checkcast_arraycopy, _checkcast_arraycopy_uninit; static address _unsafe_arraycopy; static address _generic_arraycopy; static address _jbyte_fill; static address _jshort_fill;
*** 284,313 **** --- 284,323 ---- static address jbyte_arraycopy() { return _jbyte_arraycopy; } static address jshort_arraycopy() { return _jshort_arraycopy; } static address jint_arraycopy() { return _jint_arraycopy; } static address jlong_arraycopy() { return _jlong_arraycopy; } ! static address oop_arraycopy() { return _oop_arraycopy; } ! static address oop_arraycopy(bool dest_uninitialized = false) { + return dest_uninitialized ? _oop_arraycopy_uninit : _oop_arraycopy; + } static address jbyte_disjoint_arraycopy() { return _jbyte_disjoint_arraycopy; } static address jshort_disjoint_arraycopy() { return _jshort_disjoint_arraycopy; } static address jint_disjoint_arraycopy() { return _jint_disjoint_arraycopy; } static address jlong_disjoint_arraycopy() { return _jlong_disjoint_arraycopy; } ! static address oop_disjoint_arraycopy() { return _oop_disjoint_arraycopy; } ! static address oop_disjoint_arraycopy(bool dest_uninitialized = false) { + return dest_uninitialized ? _oop_disjoint_arraycopy_uninit : _oop_disjoint_arraycopy; + } static address arrayof_jbyte_arraycopy() { return _arrayof_jbyte_arraycopy; } static address arrayof_jshort_arraycopy() { return _arrayof_jshort_arraycopy; } static address arrayof_jint_arraycopy() { return _arrayof_jint_arraycopy; } static address arrayof_jlong_arraycopy() { return _arrayof_jlong_arraycopy; } ! static address arrayof_oop_arraycopy() { return _arrayof_oop_arraycopy; } ! static address arrayof_oop_arraycopy(bool dest_uninitialized = false) { + return dest_uninitialized ? _arrayof_oop_arraycopy_uninit : _arrayof_oop_arraycopy; + } static address arrayof_jbyte_disjoint_arraycopy() { return _arrayof_jbyte_disjoint_arraycopy; } static address arrayof_jshort_disjoint_arraycopy() { return _arrayof_jshort_disjoint_arraycopy; } static address arrayof_jint_disjoint_arraycopy() { return _arrayof_jint_disjoint_arraycopy; } static address arrayof_jlong_disjoint_arraycopy() { return _arrayof_jlong_disjoint_arraycopy; } ! static address arrayof_oop_disjoint_arraycopy() { return _arrayof_oop_disjoint_arraycopy; } ! static address arrayof_oop_disjoint_arraycopy(bool dest_uninitialized = false) { + return dest_uninitialized ? _arrayof_oop_disjoint_arraycopy_uninit : _arrayof_oop_disjoint_arraycopy; + } ! static address checkcast_arraycopy() { return _checkcast_arraycopy; } ! static address checkcast_arraycopy(bool dest_uninitialized = false) { + return dest_uninitialized ? _checkcast_arraycopy_uninit : _checkcast_arraycopy; + } static address unsafe_arraycopy() { return _unsafe_arraycopy; } static address generic_arraycopy() { return _generic_arraycopy; } static address jbyte_fill() { return _jbyte_fill; } static address jshort_fill() { return _jshort_fill; }
*** 351,368 **** --- 361,380 ---- // // Default versions of the above arraycopy functions for platforms which do // not have specialized versions // static void jbyte_copy (jbyte* src, jbyte* dest, size_t count); ! static void jshort_copy (jshort* src, jshort* dest, size_t count); static void jint_copy (jint* src, jint* dest, size_t count); static void jlong_copy (jlong* src, jlong* dest, size_t count); static void oop_copy (oop* src, oop* dest, size_t count); + static void oop_copy_uninit(oop* src, oop* dest, size_t count); static void arrayof_jbyte_copy (HeapWord* src, HeapWord* dest, size_t count); ! static void arrayof_jshort_copy (HeapWord* src, HeapWord* dest, size_t count); static void arrayof_jint_copy (HeapWord* src, HeapWord* dest, size_t count); static void arrayof_jlong_copy (HeapWord* src, HeapWord* dest, size_t count); static void arrayof_oop_copy (HeapWord* src, HeapWord* dest, size_t count); + static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count); }; #endif // SHARE_VM_RUNTIME_STUBROUTINES_HPP

src/share/vm/runtime/stubRoutines.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File