|
1 | 1 | /* |
2 | | - * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. |
| 2 | + * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. |
3 | 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 | 4 | * |
5 | 5 | * This code is free software; you can redistribute it and/or modify it |
@@ -552,170 +552,6 @@ class StubGenerator: public StubCodeGenerator { |
552 | 552 | return start; |
553 | 553 | } |
554 | 554 |
|
555 | | - // Implementation of jint atomic_xchg(jint add_value, volatile jint* dest) |
556 | | - // used by Atomic::xchg(volatile jint* dest, jint exchange_value) |
557 | | - // |
558 | | - // Arguments : |
559 | | - // c_rarg0: exchange_value |
560 | | - // c_rarg0: dest |
561 | | - // |
562 | | - // Result: |
563 | | - // *dest <- ex, return (orig *dest) |
564 | | - address generate_atomic_xchg() { |
565 | | - StubCodeMark mark(this, "StubRoutines", "atomic_xchg"); |
566 | | - address start = __ pc(); |
567 | | - |
568 | | - __ movl(rax, c_rarg0); // Copy to eax we need a return value anyhow |
569 | | - __ xchgl(rax, Address(c_rarg1, 0)); // automatic LOCK |
570 | | - __ ret(0); |
571 | | - |
572 | | - return start; |
573 | | - } |
574 | | - |
575 | | - // Implementation of intptr_t atomic_xchg(jlong add_value, volatile jlong* dest) |
576 | | - // used by Atomic::xchg(volatile jlong* dest, jlong exchange_value) |
577 | | - // |
578 | | - // Arguments : |
579 | | - // c_rarg0: exchange_value |
580 | | - // c_rarg1: dest |
581 | | - // |
582 | | - // Result: |
583 | | - // *dest <- ex, return (orig *dest) |
584 | | - address generate_atomic_xchg_long() { |
585 | | - StubCodeMark mark(this, "StubRoutines", "atomic_xchg_long"); |
586 | | - address start = __ pc(); |
587 | | - |
588 | | - __ movptr(rax, c_rarg0); // Copy to eax we need a return value anyhow |
589 | | - __ xchgptr(rax, Address(c_rarg1, 0)); // automatic LOCK |
590 | | - __ ret(0); |
591 | | - |
592 | | - return start; |
593 | | - } |
594 | | - |
595 | | - // Support for jint atomic::atomic_cmpxchg(jint exchange_value, volatile jint* dest, |
596 | | - // jint compare_value) |
597 | | - // |
598 | | - // Arguments : |
599 | | - // c_rarg0: exchange_value |
600 | | - // c_rarg1: dest |
601 | | - // c_rarg2: compare_value |
602 | | - // |
603 | | - // Result: |
604 | | - // if ( compare_value == *dest ) { |
605 | | - // *dest = exchange_value |
606 | | - // return compare_value; |
607 | | - // else |
608 | | - // return *dest; |
609 | | - address generate_atomic_cmpxchg() { |
610 | | - StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg"); |
611 | | - address start = __ pc(); |
612 | | - |
613 | | - __ movl(rax, c_rarg2); |
614 | | - __ lock(); |
615 | | - __ cmpxchgl(c_rarg0, Address(c_rarg1, 0)); |
616 | | - __ ret(0); |
617 | | - |
618 | | - return start; |
619 | | - } |
620 | | - |
621 | | - // Support for int8_t atomic::atomic_cmpxchg(int8_t exchange_value, volatile int8_t* dest, |
622 | | - // int8_t compare_value) |
623 | | - // |
624 | | - // Arguments : |
625 | | - // c_rarg0: exchange_value |
626 | | - // c_rarg1: dest |
627 | | - // c_rarg2: compare_value |
628 | | - // |
629 | | - // Result: |
630 | | - // if ( compare_value == *dest ) { |
631 | | - // *dest = exchange_value |
632 | | - // return compare_value; |
633 | | - // else |
634 | | - // return *dest; |
635 | | - address generate_atomic_cmpxchg_byte() { |
636 | | - StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg_byte"); |
637 | | - address start = __ pc(); |
638 | | - |
639 | | - __ movsbq(rax, c_rarg2); |
640 | | - __ lock(); |
641 | | - __ cmpxchgb(c_rarg0, Address(c_rarg1, 0)); |
642 | | - __ ret(0); |
643 | | - |
644 | | - return start; |
645 | | - } |
646 | | - |
647 | | - // Support for int64_t atomic::atomic_cmpxchg(int64_t exchange_value, |
648 | | - // volatile int64_t* dest, |
649 | | - // int64_t compare_value) |
650 | | - // Arguments : |
651 | | - // c_rarg0: exchange_value |
652 | | - // c_rarg1: dest |
653 | | - // c_rarg2: compare_value |
654 | | - // |
655 | | - // Result: |
656 | | - // if ( compare_value == *dest ) { |
657 | | - // *dest = exchange_value |
658 | | - // return compare_value; |
659 | | - // else |
660 | | - // return *dest; |
661 | | - address generate_atomic_cmpxchg_long() { |
662 | | - StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg_long"); |
663 | | - address start = __ pc(); |
664 | | - |
665 | | - __ movq(rax, c_rarg2); |
666 | | - __ lock(); |
667 | | - __ cmpxchgq(c_rarg0, Address(c_rarg1, 0)); |
668 | | - __ ret(0); |
669 | | - |
670 | | - return start; |
671 | | - } |
672 | | - |
673 | | - // Implementation of jint atomic_add(jint add_value, volatile jint* dest) |
674 | | - // used by Atomic::add(volatile jint* dest, jint add_value) |
675 | | - // |
676 | | - // Arguments : |
677 | | - // c_rarg0: add_value |
678 | | - // c_rarg1: dest |
679 | | - // |
680 | | - // Result: |
681 | | - // *dest += add_value |
682 | | - // return *dest; |
683 | | - address generate_atomic_add() { |
684 | | - StubCodeMark mark(this, "StubRoutines", "atomic_add"); |
685 | | - address start = __ pc(); |
686 | | - |
687 | | - __ movl(rax, c_rarg0); |
688 | | - __ lock(); |
689 | | - __ xaddl(Address(c_rarg1, 0), c_rarg0); |
690 | | - __ addl(rax, c_rarg0); |
691 | | - __ ret(0); |
692 | | - |
693 | | - return start; |
694 | | - } |
695 | | - |
696 | | - // Implementation of intptr_t atomic_add(intptr_t add_value, volatile intptr_t* dest) |
697 | | - // used by Atomic::add(volatile intptr_t* dest, intptr_t add_value) |
698 | | - // |
699 | | - // Arguments : |
700 | | - // c_rarg0: add_value |
701 | | - // c_rarg1: dest |
702 | | - // |
703 | | - // Result: |
704 | | - // *dest += add_value |
705 | | - // return *dest; |
706 | | - address generate_atomic_add_long() { |
707 | | - StubCodeMark mark(this, "StubRoutines", "atomic_add_long"); |
708 | | - address start = __ pc(); |
709 | | - |
710 | | - __ movptr(rax, c_rarg0); // Copy to eax we need a return value anyhow |
711 | | - __ lock(); |
712 | | - __ xaddptr(Address(c_rarg1, 0), c_rarg0); |
713 | | - __ addptr(rax, c_rarg0); |
714 | | - __ ret(0); |
715 | | - |
716 | | - return start; |
717 | | - } |
718 | | - |
719 | 555 | // Support for intptr_t OrderAccess::fence() |
720 | 556 | // |
721 | 557 | // Arguments : |
@@ -6332,13 +6168,6 @@ address generate_avx_ghash_processBlocks() { |
6332 | 6168 | StubRoutines::_catch_exception_entry = generate_catch_exception(); |
6333 | 6169 |
|
6334 | 6170 | // atomic calls |
6335 | | - StubRoutines::_atomic_xchg_entry = generate_atomic_xchg(); |
6336 | | - StubRoutines::_atomic_xchg_long_entry = generate_atomic_xchg_long(); |
6337 | | - StubRoutines::_atomic_cmpxchg_entry = generate_atomic_cmpxchg(); |
6338 | | - StubRoutines::_atomic_cmpxchg_byte_entry = generate_atomic_cmpxchg_byte(); |
6339 | | - StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long(); |
6340 | | - StubRoutines::_atomic_add_entry = generate_atomic_add(); |
6341 | | - StubRoutines::_atomic_add_long_entry = generate_atomic_add_long(); |
6342 | 6171 | StubRoutines::_fence_entry = generate_orderaccess_fence(); |
6343 | 6172 |
|
6344 | 6173 | // platform dependent |
|
0 commit comments