Mercurial > hg > truffle
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 }; |