88
89 final int argInfoDataSize = cellIndexToOffset(1);
90
91 // sorted by tag
92 // @formatter:off
93 final HotSpotMethodDataAccessor[] profileDataAccessors = {
94 null,
95 new BitData(this, config.dataLayoutBitDataTag),
96 new CounterData(this, config.dataLayoutCounterDataTag),
97 new JumpData(this, config.dataLayoutJumpDataTag),
98 new ReceiverTypeData(this, config.dataLayoutReceiverTypeDataTag),
99 new VirtualCallData(this, config.dataLayoutVirtualCallDataTag),
100 new RetData(this, config.dataLayoutRetDataTag),
101 new BranchData(this, config.dataLayoutBranchDataTag),
102 new MultiBranchData(this, config.dataLayoutMultiBranchDataTag),
103 new ArgInfoData(this, config.dataLayoutArgInfoDataTag),
104 new UnknownProfileData(this, config.dataLayoutCallTypeDataTag),
105 new VirtualCallTypeData(this, config.dataLayoutVirtualCallTypeDataTag),
106 new UnknownProfileData(this, config.dataLayoutParametersTypeDataTag),
107 new UnknownProfileData(this, config.dataLayoutSpeculativeTrapDataTag),
108 };
109 // @formatter:on
110
111 private boolean checkAccessorTags() {
112 int expectedTag = 0;
113 for (HotSpotMethodDataAccessor accessor : profileDataAccessors) {
114 if (expectedTag == 0) {
115 assert accessor == null;
116 } else {
117 assert accessor.tag == expectedTag : expectedTag + " != " + accessor.tag + " " + accessor;
118 }
119 expectedTag++;
120 }
121 return true;
122 }
123
124 private VMState() {
125 assert checkAccessorTags();
126 }
127
|
88
89 final int argInfoDataSize = cellIndexToOffset(1);
90
91 // sorted by tag
92 // @formatter:off
93 final HotSpotMethodDataAccessor[] profileDataAccessors = {
94 null,
95 new BitData(this, config.dataLayoutBitDataTag),
96 new CounterData(this, config.dataLayoutCounterDataTag),
97 new JumpData(this, config.dataLayoutJumpDataTag),
98 new ReceiverTypeData(this, config.dataLayoutReceiverTypeDataTag),
99 new VirtualCallData(this, config.dataLayoutVirtualCallDataTag),
100 new RetData(this, config.dataLayoutRetDataTag),
101 new BranchData(this, config.dataLayoutBranchDataTag),
102 new MultiBranchData(this, config.dataLayoutMultiBranchDataTag),
103 new ArgInfoData(this, config.dataLayoutArgInfoDataTag),
104 new UnknownProfileData(this, config.dataLayoutCallTypeDataTag),
105 new VirtualCallTypeData(this, config.dataLayoutVirtualCallTypeDataTag),
106 new UnknownProfileData(this, config.dataLayoutParametersTypeDataTag),
107 new UnknownProfileData(this, config.dataLayoutSpeculativeTrapDataTag),
108 new UnknownProfileData(this, config.dataLayoutArrayStoreDataTag),
109 new UnknownProfileData(this, config.dataLayoutArrayLoadDataTag),
110 new UnknownProfileData(this, config.dataLayoutACmpDataTag),
111 };
112 // @formatter:on
113
114 private boolean checkAccessorTags() {
115 int expectedTag = 0;
116 for (HotSpotMethodDataAccessor accessor : profileDataAccessors) {
117 if (expectedTag == 0) {
118 assert accessor == null;
119 } else {
120 assert accessor.tag == expectedTag : expectedTag + " != " + accessor.tag + " " + accessor;
121 }
122 expectedTag++;
123 }
124 return true;
125 }
126
127 private VMState() {
128 assert checkAccessorTags();
129 }
130
|