comparison src/share/vm/runtime/sharedRuntime.hpp @ 14198:b8b5791fa045

8026478: -XX:+VerifyAdapterSharing is broken Summary: Fix by considering all checks in StubRoutines Reviewed-by: kvn, twisti
author anoll
date Thu, 19 Dec 2013 06:09:16 +0100
parents 570aaefce624
children de6a9e811145
comparison
equal deleted inserted replaced
14197:d49557091d18 14198:b8b5791fa045
610 610
611 #ifdef ASSERT 611 #ifdef ASSERT
612 // Captures code and signature used to generate this adapter when 612 // Captures code and signature used to generate this adapter when
613 // verifing adapter equivalence. 613 // verifing adapter equivalence.
614 unsigned char* _saved_code; 614 unsigned char* _saved_code;
615 int _code_length; 615 int _saved_code_length;
616 BasicType* _saved_sig;
617 int _total_args_passed;
618 #endif 616 #endif
619 617
620 void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) { 618 void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) {
621 _fingerprint = fingerprint; 619 _fingerprint = fingerprint;
622 _i2c_entry = i2c_entry; 620 _i2c_entry = i2c_entry;
623 _c2i_entry = c2i_entry; 621 _c2i_entry = c2i_entry;
624 _c2i_unverified_entry = c2i_unverified_entry; 622 _c2i_unverified_entry = c2i_unverified_entry;
625 #ifdef ASSERT 623 #ifdef ASSERT
626 _saved_code = NULL; 624 _saved_code = NULL;
627 _code_length = 0; 625 _saved_code_length = 0;
628 _saved_sig = NULL;
629 _total_args_passed = 0;
630 #endif 626 #endif
631 } 627 }
632 628
633 void deallocate(); 629 void deallocate();
634 630
637 633
638 public: 634 public:
639 address get_i2c_entry() const { return _i2c_entry; } 635 address get_i2c_entry() const { return _i2c_entry; }
640 address get_c2i_entry() const { return _c2i_entry; } 636 address get_c2i_entry() const { return _c2i_entry; }
641 address get_c2i_unverified_entry() const { return _c2i_unverified_entry; } 637 address get_c2i_unverified_entry() const { return _c2i_unverified_entry; }
642
643 address base_address(); 638 address base_address();
644 void relocate(address new_base); 639 void relocate(address new_base);
645 640
646 AdapterFingerPrint* fingerprint() const { return _fingerprint; } 641 AdapterFingerPrint* fingerprint() const { return _fingerprint; }
647 642
649 return (AdapterHandlerEntry*)BasicHashtableEntry<mtCode>::next(); 644 return (AdapterHandlerEntry*)BasicHashtableEntry<mtCode>::next();
650 } 645 }
651 646
652 #ifdef ASSERT 647 #ifdef ASSERT
653 // Used to verify that code generated for shared adapters is equivalent 648 // Used to verify that code generated for shared adapters is equivalent
654 void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); 649 void save_code (unsigned char* code, int length);
655 bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); 650 bool compare_code(unsigned char* code, int length);
656 #endif 651 #endif
657 652
658 //virtual void print_on(outputStream* st) const; DO NOT USE 653 //virtual void print_on(outputStream* st) const; DO NOT USE
659 void print_adapter_on(outputStream* st) const; 654 void print_adapter_on(outputStream* st) const;
660 }; 655 };