equal
deleted
inserted
replaced
47 rdtsc |
47 rdtsc |
48 salq $32, %rdx |
48 salq $32, %rdx |
49 orq %rdx, %rax |
49 orq %rdx, %rax |
50 .end |
50 .end |
51 |
51 |
52 // Support for jint Atomic::add(jint add_value, volatile jint* dest) |
52 // Implementation of jint _Atomic_add(jint add_value, volatile jint* dest) |
|
53 // used by Atomic::add(volatile jint* dest, jint add_value) |
53 .inline _Atomic_add,2 |
54 .inline _Atomic_add,2 |
54 movl %edi, %eax // save add_value for return |
55 movl %edi, %eax // save add_value for return |
55 lock |
56 lock |
56 xaddl %edi, (%rsi) |
57 xaddl %edi, (%rsi) |
57 addl %edi, %eax |
58 addl %edi, %eax |
58 .end |
59 .end |
59 |
60 |
60 // Support for jlong Atomic::add(jlong add_value, volatile jlong* dest) |
61 // Implementation of jlong _Atomic_add(jlong add_value, volatile jlong* dest) |
|
62 // used by Atomic::add(volatile jlong* dest, jint add_value) |
61 .inline _Atomic_add_long,2 |
63 .inline _Atomic_add_long,2 |
62 movq %rdi, %rax // save add_value for return |
64 movq %rdi, %rax // save add_value for return |
63 lock |
65 lock |
64 xaddq %rdi, (%rsi) |
66 xaddq %rdi, (%rsi) |
65 addq %rdi, %rax |
67 addq %rdi, %rax |