src/os_cpu/solaris_sparc/vm/solaris_sparc.il

changeset 2460
85c73c0edb06
parent 1907
c18cbe5936b8
child 5283
46c544b8fbfc
     1.1 --- a/src/os_cpu/solaris_sparc/vm/solaris_sparc.il	Thu Oct 07 13:49:40 2010 -0700
     1.2 +++ b/src/os_cpu/solaris_sparc/vm/solaris_sparc.il	Tue Jan 18 17:10:03 2011 -0800
     1.3 @@ -1,5 +1,5 @@
     1.4  //
     1.5 -// Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
     1.6 +// Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
     1.7  // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8  //
     1.9  // This code is free software; you can redistribute it and/or modify it
    1.10 @@ -152,6 +152,39 @@
    1.11          .nonvolatile
    1.12          .end
    1.13  
    1.14 +  // Support for jlong Atomic::load and Atomic::store on v8.
    1.15 +  //
    1.16 +  // void _Atomic_move_long_v8(volatile jlong* src, volatile jlong* dst)
    1.17 +  //
    1.18 +  // Arguments:
    1.19 +  //      src:  O0
    1.20 +  //      dest: O1
    1.21 +  //
    1.22 +  // Overwrites O2 and O3
    1.23 +
    1.24 +        .inline _Atomic_move_long_v8,2
    1.25 +        .volatile
    1.26 +        ldd     [%o0], %o2
    1.27 +        std     %o2, [%o1]
    1.28 +        .nonvolatile
    1.29 +        .end
    1.30 +
    1.31 +  // Support for jlong Atomic::load and Atomic::store on v9.
    1.32 +  //
    1.33 +  // void _Atomic_move_long_v9(volatile jlong* src, volatile jlong* dst)
    1.34 +  //
    1.35 +  // Arguments:
    1.36 +  //      src:  O0
    1.37 +  //      dest: O1
    1.38 +  //
    1.39 +  // Overwrites O2
    1.40 +
    1.41 +        .inline _Atomic_move_long_v9,2
    1.42 +        .volatile
    1.43 +        ldx     [%o0], %o2
    1.44 +        stx     %o2, [%o1]
    1.45 +        .nonvolatile
    1.46 +        .end
    1.47  
    1.48    // Support for jint Atomic::add(jint add_value, volatile jint* dest).
    1.49    //

mercurial