52 // obj : Must point to the object to lock, contents preserved.
53 // disp_hdr: Must point to the displaced header location, contents destroyed.
54 void unlock_object(Register hdr, Register obj, Register lock, Label& slow_case);
55
56 void initialize_object(
57 Register obj, // result: Pointer to object after successful allocation.
58 Register klass, // object klass
59 Register var_size_in_bytes, // Object size in bytes if unknown at compile time; invalid otherwise.
60 int con_size_in_bytes, // Object size in bytes if known at compile time.
61 Register t1, // temp register
62 Register t2 // temp register
63 );
64
65 // Allocation of fixed-size objects.
66 // This can also be used to allocate fixed-size arrays, by setting
67 // hdr_size correctly and storing the array length afterwards.
68 void allocate_object(
69 Register obj, // result: Pointer to object after successful allocation.
70 Register t1, // temp register
71 Register t2, // temp register
72 int hdr_size, // object header size in words
73 int obj_size, // object size in words
74 Register klass, // object klass
75 Label& slow_case // Continuation point if fast allocation fails.
76 );
77
78 enum {
79 max_array_allocation_length = 0x01000000
80 };
81
82 // Allocation of arrays.
83 void allocate_array(
84 Register obj, // result: Pointer to array after successful allocation.
85 Register len, // array length
86 Register t1, // temp register
87 Register t2, // temp register
88 int hdr_size, // object header size in words
89 int elt_size, // element size in bytes
90 Register klass, // object klass
91 Label& slow_case // Continuation point if fast allocation fails.
92 );
|
52 // obj : Must point to the object to lock, contents preserved.
53 // disp_hdr: Must point to the displaced header location, contents destroyed.
54 void unlock_object(Register hdr, Register obj, Register lock, Label& slow_case);
55
56 void initialize_object(
57 Register obj, // result: Pointer to object after successful allocation.
58 Register klass, // object klass
59 Register var_size_in_bytes, // Object size in bytes if unknown at compile time; invalid otherwise.
60 int con_size_in_bytes, // Object size in bytes if known at compile time.
61 Register t1, // temp register
62 Register t2 // temp register
63 );
64
65 // Allocation of fixed-size objects.
66 // This can also be used to allocate fixed-size arrays, by setting
67 // hdr_size correctly and storing the array length afterwards.
68 void allocate_object(
69 Register obj, // result: Pointer to object after successful allocation.
70 Register t1, // temp register
71 Register t2, // temp register
72 int base_offset_in_bytes, // elements offset in bytes
73 int obj_size, // object size in words
74 Register klass, // object klass
75 Label& slow_case // Continuation point if fast allocation fails.
76 );
77
78 enum {
79 max_array_allocation_length = 0x01000000
80 };
81
82 // Allocation of arrays.
83 void allocate_array(
84 Register obj, // result: Pointer to array after successful allocation.
85 Register len, // array length
86 Register t1, // temp register
87 Register t2, // temp register
88 int hdr_size, // object header size in words
89 int elt_size, // element size in bytes
90 Register klass, // object klass
91 Label& slow_case // Continuation point if fast allocation fails.
92 );
|