Skip to content

Commit 1a0517e

Browse files
committed
merging mips code
2 parents f449ef5 + 7a9a250 commit 1a0517e

File tree

130 files changed

+25804
-12952
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+25804
-12952
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ cmake --build build -j8
4141
In addition to the default build setup, you may want to:
4242

4343
- **Build examples.** To build the [API examples](#examples), pass `-DBN_API_BUILD_EXAMPLES=ON` to CMake when configuring the build. After the build succeeds, you can install the built plugins by running the `install` target. When using the "Unix Makefiles" build generator, this looks like: `make install`.
44-
- **Build UI plugins.** You will need Qt 6.6.1 (as of writing) installed to build UI plugins.
44+
- **Build UI plugins.** You will need Qt 6.7.2 (as of writing) installed to build UI plugins.
4545
- **Build headlessly.** If you are using a headless Binary Ninja distribution or you do not wish to build UI plugins, pass `-DHEADLESS=ON` to CMake when configuring the build.
4646

4747
### Troubleshooting

arch/arm64/arch_arm64.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ class Arm64Architecture : public Architecture
266266
protected:
267267
size_t m_bits;
268268
bool m_onlyDisassembleOnAlignedAddresses;
269+
bool m_preferIntrinsics;
269270

270271
virtual bool Disassemble(const uint8_t* data, uint64_t addr, size_t maxLen, Instruction& result)
271272
{
@@ -717,6 +718,7 @@ class Arm64Architecture : public Architecture
717718
{
718719
Ref<Settings> settings = Settings::Instance();
719720
m_onlyDisassembleOnAlignedAddresses = settings->Get<bool>("arch.aarch64.disassembly.alignRequired") ? 1 : 0;
721+
m_preferIntrinsics = settings->Get<bool>("arch.aarch64.disassembly.preferIntrinsics") ? 1 : 0;
720722
}
721723

722724
bool CanAssemble() override { return true; }
@@ -1238,7 +1240,15 @@ class Arm64Architecture : public Architecture
12381240
}
12391241

12401242
len = 4;
1241-
return GetLowLevelILForInstruction(this, addr, il, instr, GetAddressSize(), m_onlyDisassembleOnAlignedAddresses);
1243+
return GetLowLevelILForInstruction(this, addr, il, instr, GetAddressSize(), m_onlyDisassembleOnAlignedAddresses, [&]() -> bool
1244+
{
1245+
Ref<Function> f = il.GetFunction();
1246+
Ref<BinaryView> v;
1247+
Ref<Settings> s = Settings::Instance();
1248+
if (s && f && (v = f->GetView()))
1249+
return m_preferIntrinsics && s->Get<bool>("arch.aarch64.disassembly.preferIntrinsics", v);
1250+
return true;
1251+
});
12421252
}
12431253

12441254

@@ -3513,6 +3523,13 @@ static void InitAarch64Settings()
35133523
"default" : true,
35143524
"description" : "Require instructions be on 4-byte aligned addresses to be disassembled."
35153525
})");
3526+
settings->RegisterSetting("arch.aarch64.disassembly.preferIntrinsics",
3527+
R"({
3528+
"title" : "AARCH64 Prefer Intrinsics for Vector Operations",
3529+
"type" : "boolean",
3530+
"default" : true,
3531+
"description" : "Prefer generating calls to intrinsics (where one is available) to lifting vector operations as unrolled loops (where available). Note that not all vector operations are currently lifted as either intrinsics or unrolled loops."
3532+
})");
35163533
}
35173534

35183535

arch/arm64/arm64test.py

Lines changed: 3953 additions & 1200 deletions
Large diffs are not rendered by default.

arch/arm64/disassembler/test_cases.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22944,6 +22944,7 @@ AA87DFC4 orr x4, x30, x7, asr #0x37
2294422944
AACAA00F orr x15, x0, x10, ror #0x28
2294522945
AADF5572 orr x18, x11, xzr, ror #0x15
2294622946
// ORR_asimdimm_L_hl 0x00111100000xxx10x1xxxxxxxxxxxx
22947+
4F04B676 orr v22.8h, #0x93, lsl #0x8
2294722948
0F04B676 orr v22.4h, #0x93, lsl #0x8
2294822949
0F059527 orr v7.4h, #0xa9
2294922950
4F0494CA orr v10.8h, #0x86

0 commit comments

Comments
 (0)