comparison src/cpu/sparc/vm/stubRoutines_sparc.hpp @ 10997:46c544b8fbfc

8008407: remove SPARC V8 support Summary: Removed most of the SPARC V8 instructions Reviewed-by: kvn, twisti
author morris
date Fri, 07 Jun 2013 16:46:37 -0700
parents cba7b5c2d53f
children de6a9e811145
comparison
equal deleted inserted replaced
10996:ea60d1de6735 10997:46c544b8fbfc
45 }; 45 };
46 46
47 class Sparc { 47 class Sparc {
48 friend class StubGenerator; 48 friend class StubGenerator;
49 49
50 public:
51 enum { nof_instance_allocators = 10 };
52
53 // allocator lock values
54 enum {
55 unlocked = 0,
56 locked = 1
57 };
58
59 enum {
60 v8_oop_lock_ignore_bits = 2,
61 v8_oop_lock_bits = 4,
62 nof_v8_oop_lock_cache_entries = 1 << (v8_oop_lock_bits+v8_oop_lock_ignore_bits),
63 v8_oop_lock_mask = right_n_bits(v8_oop_lock_bits),
64 v8_oop_lock_mask_in_place = v8_oop_lock_mask << v8_oop_lock_ignore_bits
65 };
66
67 static int _v8_oop_lock_cache[nof_v8_oop_lock_cache_entries];
68
69 private: 50 private:
70 static address _test_stop_entry; 51 static address _test_stop_entry;
71 static address _stop_subroutine_entry; 52 static address _stop_subroutine_entry;
72 static address _flush_callers_register_windows_entry; 53 static address _flush_callers_register_windows_entry;
73 54
74 static int _atomic_memory_operation_lock;
75
76 static address _partial_subtype_check; 55 static address _partial_subtype_check;
77 56
78 public: 57 public:
79 // %%% global lock for everyone who needs to use atomic_compare_and_exchange
80 // %%% or atomic_increment -- should probably use more locks for more
81 // %%% scalability-- for instance one for each eden space or group of
82
83 // address of the lock for atomic_compare_and_exchange
84 static int* atomic_memory_operation_lock_addr() { return &_atomic_memory_operation_lock; }
85
86 // accessor and mutator for _atomic_memory_operation_lock
87 static int atomic_memory_operation_lock() { return _atomic_memory_operation_lock; }
88 static void set_atomic_memory_operation_lock(int value) { _atomic_memory_operation_lock = value; }
89
90 // test assembler stop routine by setting registers 58 // test assembler stop routine by setting registers
91 static void (*test_stop_entry()) () { return CAST_TO_FN_PTR(void (*)(void), _test_stop_entry); } 59 static void (*test_stop_entry()) () { return CAST_TO_FN_PTR(void (*)(void), _test_stop_entry); }
92 60
93 // a subroutine for debugging assembler code 61 // a subroutine for debugging assembler code
94 static address stop_subroutine_entry_address() { return (address)&_stop_subroutine_entry; } 62 static address stop_subroutine_entry_address() { return (address)&_stop_subroutine_entry; }