@@ -162,22 +162,22 @@ void EnumPayload::insertValue(IRGenFunction &IGF, llvm::Value *value,
162162 subvalue = IGF.Builder .CreateLShr (subvalue,
163163 llvm::ConstantInt::get (valueIntTy, valueOffset));
164164 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));
171178 }
172- subvalue = IGF.Builder .CreateShl (subvalue,
173- llvm::ConstantInt::get (payloadIntTy, (payloadBitWidth - shiftBitWidth) - payloadValueOffset));
174179 }
175- #else
176- if (payloadValueOffset > 0 )
177- subvalue = IGF.Builder .CreateShl (subvalue,
178- llvm::ConstantInt::get (payloadIntTy, payloadValueOffset));
179- #endif
180-
180+
181181 // If there hasn't yet been a value stored here, we can use the adjusted
182182 // value directly.
183183 if (payloadValue.is <llvm::Type *>()) {
@@ -230,21 +230,21 @@ llvm::Value *EnumPayload::extractValue(IRGenFunction &IGF, llvm::Type *type,
230230 llvm::IntegerType::get (IGF.IGM .getLLVMContext (), payloadBitWidth);
231231
232232 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));
239246 }
240- value = IGF.Builder .CreateLShr (value,
241- llvm::ConstantInt::get (value->getType (), (payloadBitWidth - shiftBitWidth) - payloadValueOffset));
242247 }
243- #else
244- if (payloadValueOffset > 0 )
245- value = IGF.Builder .CreateLShr (value,
246- llvm::ConstantInt::get (value->getType (), payloadValueOffset));
247- #endif
248248 if (valueBitWidth > payloadBitWidth)
249249 value = IGF.Builder .CreateZExt (value, valueIntTy);
250250 if (valueOffset > 0 )
0 commit comments