Mercurial > hg > graal-compiler
comparison src/share/vm/compiler/oopMap.hpp @ 1433:efba53f86c4f
various fixes and enhancements
* correct refmap->oopmap conversion (register numbering, stack slot numbering)
* fixes for inlining (correct scoping in exception handler lookup, NPE in scope conversion)
* support for "jump to runtime stub" (patching code needs to be aware of jmp instruction)
* provide more information about methods (to allow inlining: has_balanced_monitors, etc.)
* fixes to signature type lookup
* isSubTypeOf: correct handling of array classes
* RiType: componentType/arrayOf
* prologue: inline cache check, icmiss stub
* klass state check (resolved but not initialized) in newinstance
* card table write barriers
* c1x classes are optional (to allow running c1 without them)
* correct for stored frame pointer in calling conventions (methods with arguments on stack)
* getType(Class<?>) for some basic types, used for optimizations and folding
* RiMethod/RiType: throw exception instead of silent failure on unsupported operations
* RiType: resolved/unresolved array type support
* refactoring: new on-demand template generation mechanism
* optimizations: template specialization for no_null_check, given length, etc.
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Thu, 16 Sep 2010 19:42:20 -0700 |
parents | 89e0543e1737 |
children | 2d26b0046e0d |
comparison
equal
deleted
inserted
replaced
1432:b61a43cd1255 | 1433:efba53f86c4f |
---|---|
37 class DerivedPointerEntry; | 37 class DerivedPointerEntry; |
38 | 38 |
39 class OopMapValue: public StackObj { | 39 class OopMapValue: public StackObj { |
40 friend class VMStructs; | 40 friend class VMStructs; |
41 private: | 41 private: |
42 short _value; | 42 int _value; |
43 int value() const { return _value; } | 43 int value() const { return _value; } |
44 void set_value(int value) { _value = value; } | 44 void set_value(int value) { _value = value; } |
45 short _content_reg; | 45 short _content_reg; |
46 | 46 |
47 public: | 47 public: |
48 // Constants | 48 // Constants |
49 enum { type_bits = 5, | 49 enum { type_bits = 5, |
50 register_bits = BitsPerShort - type_bits }; | 50 register_bits = BitsPerJavaInteger - type_bits }; |
51 | 51 |
52 enum { type_shift = 0, | 52 enum { type_shift = 0, |
53 register_shift = type_bits }; | 53 register_shift = type_bits }; |
54 | 54 |
55 enum { type_mask = right_n_bits(type_bits), | 55 enum { type_mask = right_n_bits(type_bits), |