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