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