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