@@ -162,22 +162,22 @@ void EnumPayload::insertValue(IRGenFunction &IGF, llvm::Value *value,
162
162
subvalue = IGF.Builder .CreateLShr (subvalue,
163
163
llvm::ConstantInt::get (valueIntTy, valueOffset));
164
164
subvalue = IGF.Builder .CreateZExtOrTrunc (subvalue, payloadIntTy);
165
- #if defined(__BIG_ENDIAN__)
166
- if ((valueBitWidth == 32 || valueBitWidth == 16 || valueBitWidth == 8 || valueBitWidth == 1 ) &&
167
- payloadBitWidth > (payloadValueOffset + valueBitWidth)) {
168
- unsigned shiftBitWidth = valueBitWidth;
169
- if (valueBitWidth == 1 ) {
170
- shiftBitWidth = 8 ;
165
+ if (IGF.IGM .Triple .isLittleEndian ()) {
166
+ if (payloadValueOffset > 0 )
167
+ subvalue = IGF.Builder .CreateShl (subvalue,
168
+ llvm::ConstantInt::get (payloadIntTy, payloadValueOffset));
169
+ } else {
170
+ if ((valueBitWidth == 32 || valueBitWidth == 16 || valueBitWidth == 8 || valueBitWidth == 1 ) &&
171
+ payloadBitWidth > (payloadValueOffset + valueBitWidth)) {
172
+ unsigned shiftBitWidth = valueBitWidth;
173
+ if (valueBitWidth == 1 ) {
174
+ shiftBitWidth = 8 ;
175
+ }
176
+ subvalue = IGF.Builder .CreateShl (subvalue,
177
+ llvm::ConstantInt::get (payloadIntTy, (payloadBitWidth - shiftBitWidth) - payloadValueOffset));
171
178
}
172
- subvalue = IGF.Builder .CreateShl (subvalue,
173
- llvm::ConstantInt::get (payloadIntTy, (payloadBitWidth - shiftBitWidth) - payloadValueOffset));
174
179
}
175
- #else
176
- if (payloadValueOffset > 0 )
177
- subvalue = IGF.Builder .CreateShl (subvalue,
178
- llvm::ConstantInt::get (payloadIntTy, payloadValueOffset));
179
- #endif
180
-
180
+
181
181
// If there hasn't yet been a value stored here, we can use the adjusted
182
182
// value directly.
183
183
if (payloadValue.is <llvm::Type *>()) {
@@ -230,21 +230,21 @@ llvm::Value *EnumPayload::extractValue(IRGenFunction &IGF, llvm::Type *type,
230
230
llvm::IntegerType::get (IGF.IGM .getLLVMContext (), payloadBitWidth);
231
231
232
232
value = IGF.Builder .CreateBitOrPointerCast (value, payloadIntTy);
233
- #if defined(__BIG_ENDIAN__)
234
- if ((valueBitWidth == 32 || valueBitWidth == 16 || valueBitWidth == 8 || valueBitWidth == 1 ) &&
235
- payloadBitWidth > (payloadValueOffset + valueBitWidth)) {
236
- unsigned shiftBitWidth = valueBitWidth;
237
- if (valueBitWidth == 1 ) {
238
- shiftBitWidth = 8 ;
233
+ if (IGF.IGM .Triple .isLittleEndian ()) {
234
+ if (payloadValueOffset > 0 )
235
+ value = IGF.Builder .CreateLShr (value,
236
+ llvm::ConstantInt::get (value->getType (), payloadValueOffset));
237
+ } else {
238
+ if ((valueBitWidth == 32 || valueBitWidth == 16 || valueBitWidth == 8 || valueBitWidth == 1 ) &&
239
+ payloadBitWidth > (payloadValueOffset + valueBitWidth)) {
240
+ unsigned shiftBitWidth = valueBitWidth;
241
+ if (valueBitWidth == 1 ) {
242
+ shiftBitWidth = 8 ;
243
+ }
244
+ value = IGF.Builder .CreateLShr (value,
245
+ llvm::ConstantInt::get (value->getType (), (payloadBitWidth - shiftBitWidth) - payloadValueOffset));
239
246
}
240
- value = IGF.Builder .CreateLShr (value,
241
- llvm::ConstantInt::get (value->getType (), (payloadBitWidth - shiftBitWidth) - payloadValueOffset));
242
247
}
243
- #else
244
- if (payloadValueOffset > 0 )
245
- value = IGF.Builder .CreateLShr (value,
246
- llvm::ConstantInt::get (value->getType (), payloadValueOffset));
247
- #endif
248
248
if (valueBitWidth > payloadBitWidth)
249
249
value = IGF.Builder .CreateZExt (value, valueIntTy);
250
250
if (valueOffset > 0 )
0 commit comments