OLD | NEW |
1 //===- subzero/src/IceTargetLoweringARM32.cpp - ARM32 lowering ------------===// | 1 //===- subzero/src/IceTargetLoweringARM32.cpp - ARM32 lowering ------------===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 6419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6430 | 6430 |
6431 emitConstant<T>(Str, Ctx, llvm::dyn_cast<typename Traits::ConstantType>(C)); | 6431 emitConstant<T>(Str, Ctx, llvm::dyn_cast<typename Traits::ConstantType>(C)); |
6432 } | 6432 } |
6433 } | 6433 } |
6434 } // end of anonymous namespace | 6434 } // end of anonymous namespace |
6435 | 6435 |
6436 void TargetDataARM32::lowerConstants() { | 6436 void TargetDataARM32::lowerConstants() { |
6437 if (Ctx->getFlags().getDisableTranslation()) | 6437 if (Ctx->getFlags().getDisableTranslation()) |
6438 return; | 6438 return; |
6439 switch (Ctx->getFlags().getOutFileType()) { | 6439 switch (Ctx->getFlags().getOutFileType()) { |
6440 case FT_Elf: | 6440 case FT_Elf: { |
6441 UnimplementedError(Ctx->getFlags()); | 6441 ELFObjectWriter *Writer = Ctx->getObjectWriter(); |
6442 break; | 6442 Writer->writeConstantPool<ConstantFloat>(IceType_f32); |
| 6443 Writer->writeConstantPool<ConstantDouble>(IceType_f64); |
| 6444 } break; |
6443 case FT_Asm: | 6445 case FT_Asm: |
6444 case FT_Iasm: { | 6446 case FT_Iasm: { |
6445 OstreamLocker _(Ctx); | 6447 OstreamLocker _(Ctx); |
6446 emitConstantPool<float>(Ctx); | 6448 emitConstantPool<float>(Ctx); |
6447 emitConstantPool<double>(Ctx); | 6449 emitConstantPool<double>(Ctx); |
6448 break; | 6450 break; |
6449 } | 6451 } |
6450 } | 6452 } |
6451 } | 6453 } |
6452 | 6454 |
6453 void TargetDataARM32::lowerJumpTables() { | 6455 void TargetDataARM32::lowerJumpTables() { |
6454 if (Ctx->getFlags().getDisableTranslation()) | 6456 if (Ctx->getFlags().getDisableTranslation()) |
6455 return; | 6457 return; |
6456 switch (Ctx->getFlags().getOutFileType()) { | 6458 switch (Ctx->getFlags().getOutFileType()) { |
6457 case FT_Elf: | 6459 case FT_Elf: |
6458 UnimplementedError(Ctx->getFlags()); | 6460 if (!Ctx->getJumpTables().empty()) { |
| 6461 llvm::report_fatal_error("ARM32 does not support jump tables yet."); |
| 6462 } |
6459 break; | 6463 break; |
6460 case FT_Asm: | 6464 case FT_Asm: |
6461 // Already emitted from Cfg | 6465 // Already emitted from Cfg |
6462 break; | 6466 break; |
6463 case FT_Iasm: { | 6467 case FT_Iasm: { |
6464 // TODO(kschimpf): Fill this in when we get more information. | 6468 // TODO(kschimpf): Fill this in when we get more information. |
6465 break; | 6469 break; |
6466 } | 6470 } |
6467 } | 6471 } |
6468 } | 6472 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6516 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n"; | 6520 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n"; |
6517 } | 6521 } |
6518 | 6522 |
6519 llvm::SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM]; | 6523 llvm::SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM]; |
6520 llvm::SmallBitVector | 6524 llvm::SmallBitVector |
6521 TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM]; | 6525 TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM]; |
6522 llvm::SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM]; | 6526 llvm::SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM]; |
6523 | 6527 |
6524 } // end of namespace ARM32 | 6528 } // end of namespace ARM32 |
6525 } // end of namespace Ice | 6529 } // end of namespace Ice |
OLD | NEW |