OLD | NEW |
1 //===- MCAssembler.h - Object File Generation -------------------*- C++ -*-===// | 1 //===- MCAssembler.h - Object File Generation -------------------*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
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 #ifndef LLVM_MC_MCASSEMBLER_H | 10 #ifndef LLVM_MC_MCASSEMBLER_H |
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 | 835 |
836 /// Check whether a fixup can be satisfied, or whether it needs to be relaxed | 836 /// Check whether a fixup can be satisfied, or whether it needs to be relaxed |
837 /// (increased in size, in order to hold its value correctly). | 837 /// (increased in size, in order to hold its value correctly). |
838 bool fixupNeedsRelaxation(const MCFixup &Fixup, const MCInstFragment *DF, | 838 bool fixupNeedsRelaxation(const MCFixup &Fixup, const MCInstFragment *DF, |
839 const MCAsmLayout &Layout) const; | 839 const MCAsmLayout &Layout) const; |
840 | 840 |
841 /// Check whether the given fragment needs relaxation. | 841 /// Check whether the given fragment needs relaxation. |
842 bool fragmentNeedsRelaxation(const MCInstFragment *IF, | 842 bool fragmentNeedsRelaxation(const MCInstFragment *IF, |
843 const MCAsmLayout &Layout) const; | 843 const MCAsmLayout &Layout) const; |
844 | 844 |
845 // @LOCALMOD-BEGIN | |
846 uint8_t ComputeBundlePadding(const MCAsmLayout &Layout, | |
847 MCFragment *F, | |
848 uint64_t FragmentOffset) const; | |
849 // @LOCALMOD-END | |
850 | |
851 | |
852 /// layoutOnce - Perform one layout iteration and return true if any offsets | 845 /// layoutOnce - Perform one layout iteration and return true if any offsets |
853 /// were adjusted. | 846 /// were adjusted. |
854 bool layoutOnce(MCAsmLayout &Layout); | 847 bool layoutOnce(MCAsmLayout &Layout); |
855 | 848 |
856 bool layoutSectionOnce(MCAsmLayout &Layout, MCSectionData &SD); | 849 bool layoutSectionOnce(MCAsmLayout &Layout, MCSectionData &SD); |
857 | 850 |
858 bool relaxInstruction(MCAsmLayout &Layout, MCInstFragment &IF); | 851 bool relaxInstruction(MCAsmLayout &Layout, MCInstFragment &IF); |
859 | 852 |
860 bool relaxLEB(MCAsmLayout &Layout, MCLEBFragment &IF); | 853 bool relaxLEB(MCAsmLayout &Layout, MCLEBFragment &IF); |
861 | 854 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
908 // implementations as we do with AsmParser. | 901 // implementations as we do with AsmParser. |
909 MCAssembler(MCContext &Context_, MCAsmBackend &Backend_, | 902 MCAssembler(MCContext &Context_, MCAsmBackend &Backend_, |
910 MCCodeEmitter &Emitter_, MCObjectWriter &Writer_, | 903 MCCodeEmitter &Emitter_, MCObjectWriter &Writer_, |
911 raw_ostream &OS); | 904 raw_ostream &OS); |
912 ~MCAssembler(); | 905 ~MCAssembler(); |
913 | 906 |
914 MCContext &getContext() const { return Context; } | 907 MCContext &getContext() const { return Context; } |
915 | 908 |
916 MCAsmBackend &getBackend() const { return Backend; } | 909 MCAsmBackend &getBackend() const { return Backend; } |
917 | 910 |
918 // @LOCALMOD-BEGIN | |
919 uint64_t getBundleSize() const; | |
920 uint64_t getBundleMask() const; | |
921 // @LOCALMOD-END | |
922 | |
923 | |
924 MCCodeEmitter &getEmitter() const { return Emitter; } | 911 MCCodeEmitter &getEmitter() const { return Emitter; } |
925 | 912 |
926 MCObjectWriter &getWriter() const { return Writer; } | 913 MCObjectWriter &getWriter() const { return Writer; } |
927 | 914 |
928 /// Finish - Do final processing and write the object to the output stream. | 915 /// Finish - Do final processing and write the object to the output stream. |
929 /// \p Writer is used for custom object writer (as the MCJIT does), | 916 /// \p Writer is used for custom object writer (as the MCJIT does), |
930 /// if not specified it is automatically created from backend. | 917 /// if not specified it is automatically created from backend. |
931 void Finish(); | 918 void Finish(); |
932 | 919 |
933 // FIXME: This does not belong here. | 920 // FIXME: This does not belong here. |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1066 } | 1053 } |
1067 | 1054 |
1068 /// @} | 1055 /// @} |
1069 | 1056 |
1070 void dump(); | 1057 void dump(); |
1071 }; | 1058 }; |
1072 | 1059 |
1073 } // end namespace llvm | 1060 } // end namespace llvm |
1074 | 1061 |
1075 #endif | 1062 #endif |
OLD | NEW |