@@ -135,15 +135,16 @@ inline uint64_t decodeULEB128(const uint8_t *p, unsigned *n = nullptr,
135
135
uint64_t Value = 0 ;
136
136
unsigned Shift = 0 ;
137
137
do {
138
- if (p == end) {
138
+ if (LLVM_UNLIKELY ( p == end) ) {
139
139
if (error)
140
140
*error = " malformed uleb128, extends past end" ;
141
141
Value = 0 ;
142
142
break ;
143
143
}
144
144
uint64_t Slice = *p & 0x7f ;
145
- if (Shift >= 63 && ((Shift == 63 && (Slice << Shift >> Shift) != Slice) ||
146
- (Shift > 63 && Slice != 0 ))) {
145
+ if (LLVM_UNLIKELY (Shift >= 63 ) &&
146
+ ((Shift == 63 && (Slice << Shift >> Shift) != Slice) ||
147
+ (Shift > 63 && Slice != 0 ))) {
147
148
if (error)
148
149
*error = " uleb128 too big for uint64" ;
149
150
Value = 0 ;
@@ -169,7 +170,7 @@ inline int64_t decodeSLEB128(const uint8_t *p, unsigned *n = nullptr,
169
170
unsigned Shift = 0 ;
170
171
uint8_t Byte;
171
172
do {
172
- if (p == end) {
173
+ if (LLVM_UNLIKELY ( p == end) ) {
173
174
if (error)
174
175
*error = " malformed sleb128, extends past end" ;
175
176
if (n)
@@ -178,8 +179,9 @@ inline int64_t decodeSLEB128(const uint8_t *p, unsigned *n = nullptr,
178
179
}
179
180
Byte = *p;
180
181
uint64_t Slice = Byte & 0x7f ;
181
- if ((Shift >= 63 ) && ((Shift == 63 && Slice != 0 && Slice != 0x7f ) ||
182
- (Shift > 63 && Slice != (Value < 0 ? 0x7f : 0x00 )))) {
182
+ if (LLVM_UNLIKELY (Shift >= 63 ) &&
183
+ ((Shift == 63 && Slice != 0 && Slice != 0x7f ) ||
184
+ (Shift > 63 && Slice != (Value < 0 ? 0x7f : 0x00 )))) {
183
185
if (error)
184
186
*error = " sleb128 too big for int64" ;
185
187
if (n)
0 commit comments