| 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 890 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 901 Context.insert<InstFakeDef>(T); | 901 Context.insert<InstFakeDef>(T); |
| 902 Context.insert<InstFakeDef>(GotPtr, T); | 902 Context.insert<InstFakeDef>(GotPtr, T); |
| 903 } | 903 } |
| 904 | 904 |
| 905 IceString TargetARM32::createGotoffRelocation(const ConstantRelocatable *CR) { | 905 IceString TargetARM32::createGotoffRelocation(const ConstantRelocatable *CR) { |
| 906 const IceString &CRName = CR->getName(); | 906 const IceString &CRName = CR->getName(); |
| 907 const IceString CRGotoffName = | 907 const IceString CRGotoffName = |
| 908 "GOTOFF$" + Func->getFunctionName() + "$" + CRName; | 908 "GOTOFF$" + Func->getFunctionName() + "$" + CRName; |
| 909 if (KnownGotoffs.count(CRGotoffName) == 0) { | 909 if (KnownGotoffs.count(CRGotoffName) == 0) { |
| 910 constexpr bool SuppressMangling = true; | 910 constexpr bool SuppressMangling = true; |
| 911 auto *Global = VariableDeclaration::create(Ctx, SuppressMangling); | 911 auto *Global = |
| 912 VariableDeclaration::create(Func->getGlobalPool(), SuppressMangling); |
| 912 Global->setIsConstant(true); | 913 Global->setIsConstant(true); |
| 913 Global->setName(CRName); | 914 Global->setName(CRName); |
| 915 Func->getGlobalPool()->willNotBeEmitted(Global); |
| 914 | 916 |
| 915 auto *Gotoff = VariableDeclaration::create(Ctx, SuppressMangling); | 917 auto *Gotoff = |
| 918 VariableDeclaration::create(Func->getGlobalPool(), SuppressMangling); |
| 916 constexpr auto GotFixup = R_ARM_GOTOFF32; | 919 constexpr auto GotFixup = R_ARM_GOTOFF32; |
| 917 Gotoff->setIsConstant(true); | 920 Gotoff->setIsConstant(true); |
| 918 Gotoff->addInitializer(VariableDeclaration::RelocInitializer::create( | 921 Gotoff->addInitializer(VariableDeclaration::RelocInitializer::create( |
| 919 Global, {RelocOffset::create(Ctx, 0)}, GotFixup)); | 922 Func->getGlobalPool(), Global, {RelocOffset::create(Ctx, 0)}, |
| 923 GotFixup)); |
| 920 Gotoff->setName(CRGotoffName); | 924 Gotoff->setName(CRGotoffName); |
| 921 Func->addGlobal(Gotoff); | 925 Func->addGlobal(Gotoff); |
| 922 KnownGotoffs.emplace(CRGotoffName); | 926 KnownGotoffs.emplace(CRGotoffName); |
| 923 } | 927 } |
| 924 return CRGotoffName; | 928 return CRGotoffName; |
| 925 } | 929 } |
| 926 | 930 |
| 927 void TargetARM32::materializeGotAddr(CfgNode *Node) { | 931 void TargetARM32::materializeGotAddr(CfgNode *Node) { |
| 928 if (SandboxingType != ST_Nonsfi) { | 932 if (SandboxingType != ST_Nonsfi) { |
| 929 return; | 933 return; |
| (...skipping 5963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6893 // However, for compatibility with current NaCl LLVM, don't claim that. | 6897 // However, for compatibility with current NaCl LLVM, don't claim that. |
| 6894 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n"; | 6898 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n"; |
| 6895 } | 6899 } |
| 6896 | 6900 |
| 6897 SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM]; | 6901 SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM]; |
| 6898 SmallBitVector TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM]; | 6902 SmallBitVector TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM]; |
| 6899 SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM]; | 6903 SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM]; |
| 6900 | 6904 |
| 6901 } // end of namespace ARM32 | 6905 } // end of namespace ARM32 |
| 6902 } // end of namespace Ice | 6906 } // end of namespace Ice |
| OLD | NEW |