Skip to content

Commit fc2c3e3

Browse files
committed
Output object keeps individual section longer
1 parent 6395633 commit fc2c3e3

File tree

4 files changed

+238
-161
lines changed

4 files changed

+238
-161
lines changed

core/arm_relocator.cpp

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ struct arm_data_abs32_reloc : public arm_relocator::relocatelet {
99
event_code make_event_code(const section_data& data, unsigned int offset, const std::string& sym, int addend) const {
1010
return lyn::event_code(
1111
lyn::event_code::CODE_POIN,
12-
arm_relocator::abs_reloc_string(sym, data.at<std::uint32_t>(offset) + addend)
12+
arm_relocator::abs_reloc_string(sym, data.at<std::uint32_t>(offset) + addend),
13+
lyn::event_code::ALLOW_NONE
1314
);
1415
}
1516

@@ -22,7 +23,8 @@ struct arm_data_rel32_reloc : public arm_relocator::relocatelet {
2223
event_code make_event_code(const section_data& data, unsigned int offset, const std::string &sym, int addend) const {
2324
return lyn::event_code(
2425
lyn::event_code::CODE_WORD,
25-
arm_relocator::rel_reloc_string(sym, data.at<std::uint32_t>(offset) + addend)
26+
arm_relocator::rel_reloc_string(sym, data.at<std::uint32_t>(offset) + addend),
27+
lyn::event_code::ALLOW_NONE
2628
);
2729
}
2830

@@ -35,7 +37,8 @@ struct arm_data_abs16_reloc : public arm_relocator::relocatelet {
3537
event_code make_event_code(const section_data& data, unsigned int offset, const std::string& sym, int addend) const {
3638
return lyn::event_code(
3739
lyn::event_code::CODE_SHORT,
38-
arm_relocator::abs_reloc_string(sym, data.at<std::uint16_t>(offset) + addend)
40+
arm_relocator::abs_reloc_string(sym, data.at<std::uint16_t>(offset) + addend),
41+
lyn::event_code::ALLOW_NONE
3942
);
4043
}
4144

@@ -48,7 +51,8 @@ struct arm_data_abs8_reloc : public arm_relocator::relocatelet {
4851
event_code make_event_code(const section_data& data, unsigned int offset, const std::string& sym, int addend) const {
4952
return lyn::event_code(
5053
lyn::event_code::CODE_BYTE,
51-
arm_relocator::abs_reloc_string(sym, data.byte_at(offset) + addend)
54+
arm_relocator::abs_reloc_string(sym, data.byte_at(offset) + addend),
55+
lyn::event_code::ALLOW_NONE
5256
);
5357
}
5458

@@ -145,14 +149,13 @@ std::string arm_relocator::abs_reloc_string(const std::string& symbol, int adden
145149
std::string result;
146150
result.reserve(3 + 8 + symbol.size()); // 5 ("(-)") + 8 (addend literal int) + symbol string
147151

148-
result.append("(").append(symbol);
152+
result.append(symbol);
149153

150154
if (addend < 0)
151155
result.append("-").append(std::to_string(-addend));
152156
else
153157
result.append("+").append(std::to_string(addend));
154158

155-
result.append(")");
156159
return result;
157160
}
158161

@@ -163,14 +166,14 @@ std::string arm_relocator::rel_reloc_string(const std::string& symbol, int adden
163166
std::string result;
164167
result.reserve(17 + 8 + symbol.size()); // 17 ("(--CURRENTOFFSET)") + 8 (addend literal int) + symbol string
165168

166-
result.append("(").append(symbol);
169+
result.append(symbol);
167170

168171
if (addend < 0)
169172
result.append("-").append(std::to_string(-addend));
170173
else
171174
result.append("+").append(std::to_string(addend));
172175

173-
result.append("-CURRENTOFFSET)");
176+
result.append("-CURRENTOFFSET");
174177
return result;
175178
}
176179

@@ -188,11 +191,10 @@ std::string arm_relocator::b24_arm_string(std::uint32_t base, const std::string&
188191

189192
base &= 0xFF000000;
190193

191-
result.append("(((");
194+
result.append("((");
192195
result.append(valueString);
193196
result.append(">>2)&$FFFFFF)|$");
194197
util::append_hex(result, base);
195-
result.append(")");
196198

197199
return result;
198200
}
@@ -201,9 +203,9 @@ std::string arm_relocator::bl_op1_string(const std::string& valueString) {
201203
std::string result;
202204
result.reserve(3 + 18 + valueString.size());
203205

204-
result.append("(((");
206+
result.append("((");
205207
result.append(valueString);
206-
result.append(">>12)&$7FF)|$F000)");
208+
result.append(">>12)&$7FF)|$F000");
207209

208210
return result;
209211
}
@@ -212,9 +214,9 @@ std::string arm_relocator::bl_op2_string(const std::string& valueString) {
212214
std::string result;
213215
result.reserve(3 + 17 + valueString.size());
214216

215-
result.append("(((");
217+
result.append("((");
216218
result.append(valueString);
217-
result.append(">>1)&$7FF)|$F800)");
219+
result.append(">>1)&$7FF)|$F800");
218220

219221
return result;
220222
}

0 commit comments

Comments
 (0)