33 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
34 int con_size_in_bytes, // object size in bytes if known at compile time
35 Register t1, // temp register
36 Register t2, // temp register
37 Label& slow_case // continuation point if fast allocation fails
38 );
39
40 void initialize_header(Register obj, Register klass, Register len, Register t1, Register t2);
41 void initialize_body(Register base, Register index);
42
43 // locking/unlocking
44 void lock_object (Register Rmark, Register Roop, Register Rbox, Register Rscratch, Label& slow_case);
45 void unlock_object(Register Rmark, Register Roop, Register Rbox, Label& slow_case);
46
47 void initialize_object(
48 Register obj, // result: pointer to object after successful allocation
49 Register klass, // object klass
50 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
51 int con_size_in_bytes, // object size in bytes if known at compile time
52 Register t1, // temp register
53 Register t2 // temp register
54 );
55
56 // allocation of fixed-size objects
57 // (can also be used to allocate fixed-size arrays, by setting
58 // hdr_size correctly and storing the array length afterwards)
59 void allocate_object(
60 Register obj, // result: pointer to object after successful allocation
61 Register t1, // temp register
62 Register t2, // temp register
63 Register t3, // temp register
64 int hdr_size, // object header size in words
65 int obj_size, // object size in words
66 Register klass, // object klass
67 Label& slow_case // continuation point if fast allocation fails
68 );
69
70 enum {
71 max_array_allocation_length = 0x01000000 // sparc friendly value, requires sethi only
72 };
73
|
33 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
34 int con_size_in_bytes, // object size in bytes if known at compile time
35 Register t1, // temp register
36 Register t2, // temp register
37 Label& slow_case // continuation point if fast allocation fails
38 );
39
40 void initialize_header(Register obj, Register klass, Register len, Register t1, Register t2);
41 void initialize_body(Register base, Register index);
42
43 // locking/unlocking
44 void lock_object (Register Rmark, Register Roop, Register Rbox, Register Rscratch, Label& slow_case);
45 void unlock_object(Register Rmark, Register Roop, Register Rbox, Label& slow_case);
46
47 void initialize_object(
48 Register obj, // result: pointer to object after successful allocation
49 Register klass, // object klass
50 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
51 int con_size_in_bytes, // object size in bytes if known at compile time
52 Register t1, // temp register
53 Register t2, // temp register
54 bool is_tlab_allocated // the object was allocated in a TLAB; relevant for the implementation of ZeroTLAB
55 );
56
57 // allocation of fixed-size objects
58 // (can also be used to allocate fixed-size arrays, by setting
59 // hdr_size correctly and storing the array length afterwards)
60 void allocate_object(
61 Register obj, // result: pointer to object after successful allocation
62 Register t1, // temp register
63 Register t2, // temp register
64 Register t3, // temp register
65 int hdr_size, // object header size in words
66 int obj_size, // object size in words
67 Register klass, // object klass
68 Label& slow_case // continuation point if fast allocation fails
69 );
70
71 enum {
72 max_array_allocation_length = 0x01000000 // sparc friendly value, requires sethi only
73 };
74
|