Mercurial > hg > graal-compiler
comparison src/os_cpu/solaris_x86/vm/solaris_x86_32.il @ 2114:4fc084dac61e
7009756: volatile variables could be broken throw reflection API
Summary: Use Atomic::load() and Atomic::store() to access a volatile long.
Reviewed-by: iveresov, jrose, dholmes, never
author | kvn |
---|---|
date | Fri, 07 Jan 2011 10:16:57 -0800 |
parents | c18cbe5936b8 |
children | bb8e3b66bde6 |
comparison
equal
deleted
inserted
replaced
2113:0e52ef6e94d3 | 2114:4fc084dac61e |
---|---|
1 // | 1 // |
2 // Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. | 2 // Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. |
3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 // | 4 // |
5 // This code is free software; you can redistribute it and/or modify it | 5 // This code is free software; you can redistribute it and/or modify it |
6 // under the terms of the GNU General Public License version 2 only, as | 6 // under the terms of the GNU General Public License version 2 only, as |
7 // published by the Free Software Foundation. | 7 // published by the Free Software Foundation. |
102 cmpxchg8b (%edi) | 102 cmpxchg8b (%edi) |
103 2: popl %edi | 103 2: popl %edi |
104 popl %ebx | 104 popl %ebx |
105 .end | 105 .end |
106 | 106 |
107 // Support for void Atomic::load(volatile jlong* src, volatile jlong* dest). | 107 // Support for jlong Atomic::load and Atomic::store. |
108 .inline _Atomic_load_long,2 | 108 // void _Atomic_move_long(volatile jlong* src, volatile jlong* dst) |
109 .inline _Atomic_move_long,2 | |
109 movl 0(%esp), %eax // src | 110 movl 0(%esp), %eax // src |
110 fildll (%eax) | 111 fildll (%eax) |
111 movl 4(%esp), %eax // dest | 112 movl 4(%esp), %eax // dest |
112 fistpll (%eax) | 113 fistpll (%eax) |
113 .end | 114 .end |