formatting

This commit is contained in:
Adam Hathcock
2024-04-08 09:50:37 +01:00
parent 09f2410170
commit 6553e9b0cd
2 changed files with 30 additions and 23 deletions

View File

@@ -19,7 +19,9 @@ internal class BCJFilterARM64 : Filter
for (i = offset; i <= end; i += 4)
{
uint pc = (uint)(_pos + i - offset);
uint instr = BinaryPrimitives.ReadUInt32LittleEndian(new ReadOnlySpan<byte>(buffer, i, 4));
uint instr = BinaryPrimitives.ReadUInt32LittleEndian(
new ReadOnlySpan<byte>(buffer, i, 4)
);
if ((instr >> 26) == 0x25)
{
@@ -35,8 +37,7 @@ internal class BCJFilterARM64 : Filter
}
else if ((instr & 0x9F000000) == 0x90000000)
{
uint src = ((instr >> 29) & 3)
| ((instr >> 3) & 0x001FFFFC);
uint src = ((instr >> 29) & 3) | ((instr >> 3) & 0x001FFFFC);
if (((src + 0x00020000) & 0x001C0000) != 0)
continue;

View File

@@ -33,21 +33,17 @@ internal class BCJFilterRISCV : Filter
uint b3 = buffer[i + 3];
uint pc = (uint)(_pos + i);
uint addr = ((b1 & 0xF0) << 13)
| (b2 << 9)
| (b3 << 1);
uint addr = ((b1 & 0xF0) << 13) | (b2 << 9) | (b3 << 1);
addr -= pc;
buffer[i + 1] = (byte)((b1 & 0x0F)
| ((addr >> 8) & 0xF0));
buffer[i + 1] = (byte)((b1 & 0x0F) | ((addr >> 8) & 0xF0));
buffer[i + 2] = (byte)(((addr >> 16) & 0x0F)
| ((addr >> 7) & 0x10)
| ((addr << 4) & 0xE0));
buffer[i + 2] = (byte)(
((addr >> 16) & 0x0F) | ((addr >> 7) & 0x10) | ((addr << 4) & 0xE0)
);
buffer[i + 3] = (byte)(((addr >> 4) & 0x7F)
| ((addr >> 13) & 0x80));
buffer[i + 3] = (byte)(((addr >> 4) & 0x7F) | ((addr >> 13) & 0x80));
i += 4 - 2;
}
@@ -60,7 +56,9 @@ internal class BCJFilterRISCV : Filter
if ((inst & 0xE80) != 0)
{
inst2 = BinaryPrimitives.ReadUInt32LittleEndian(new ReadOnlySpan<byte>(buffer, i + 4, 4));
inst2 = BinaryPrimitives.ReadUInt32LittleEndian(
new ReadOnlySpan<byte>(buffer, i + 4, 4)
);
if (((((inst) << 8) ^ (inst2)) & 0xF8003) != 3)
{
i += 6 - 2;
@@ -81,14 +79,15 @@ internal class BCJFilterRISCV : Filter
continue;
}
uint addr = BinaryPrimitives.ReadUInt32BigEndian(new ReadOnlySpan<byte>(buffer, i + 4, 4));
uint addr = BinaryPrimitives.ReadUInt32BigEndian(
new ReadOnlySpan<byte>(buffer, i + 4, 4)
);
addr -= (uint)(_pos + i);
inst2 = (inst >> 12) | (addr << 20);
inst = 0x17 | (inst2_rs1 << 7)
| ((addr + 0x800) & 0xFFFFF000);
inst = 0x17 | (inst2_rs1 << 7) | ((addr + 0x800) & 0xFFFFF000);
}
BinaryPrimitives.WriteUInt32LittleEndian(new Span<byte>(buffer, i, 4), inst);
BinaryPrimitives.WriteUInt32LittleEndian(new Span<byte>(buffer, i + 4, 4), inst2);
@@ -123,7 +122,8 @@ internal class BCJFilterRISCV : Filter
uint b3 = buffer[i + 3];
uint pc = (uint)(_pos + i);
uint addr = ((b1 & 0xF0) << 8)
uint addr =
((b1 & 0xF0) << 8)
| ((b2 & 0x0F) << 16)
| ((b2 & 0x10) << 7)
| ((b2 & 0xE0) >> 4)
@@ -132,8 +132,7 @@ internal class BCJFilterRISCV : Filter
addr += pc;
buffer[i + 1] = (byte)((b1 & 0x0F)
| ((addr >> 13) & 0xF0));
buffer[i + 1] = (byte)((b1 & 0x0F) | ((addr >> 13) & 0xF0));
buffer[i + 2] = (byte)(addr >> 9);
@@ -149,7 +148,9 @@ internal class BCJFilterRISCV : Filter
if ((inst & 0xE80) != 0)
{
uint inst2 = BinaryPrimitives.ReadUInt32LittleEndian(new ReadOnlySpan<byte>(buffer, i + 4, 4));
uint inst2 = BinaryPrimitives.ReadUInt32LittleEndian(
new ReadOnlySpan<byte>(buffer, i + 4, 4)
);
if (((((inst) << 8) ^ (inst2)) & 0xF8003) != 3)
{
i += 6 - 2;
@@ -173,14 +174,19 @@ internal class BCJFilterRISCV : Filter
continue;
}
uint fake_addr = BinaryPrimitives.ReadUInt32LittleEndian(new ReadOnlySpan<byte>(buffer, i + 4, 4));
uint fake_addr = BinaryPrimitives.ReadUInt32LittleEndian(
new ReadOnlySpan<byte>(buffer, i + 4, 4)
);
uint fake_inst2 = (inst >> 12) | (fake_addr << 20);
inst = 0x17 | (fake_rs1 << 7) | (fake_addr & 0xFFFFF000);
BinaryPrimitives.WriteUInt32LittleEndian(new Span<byte>(buffer, i, 4), inst);
BinaryPrimitives.WriteUInt32LittleEndian(new Span<byte>(buffer, i + 4, 4), fake_inst2);
BinaryPrimitives.WriteUInt32LittleEndian(
new Span<byte>(buffer, i + 4, 4),
fake_inst2
);
}
i += 8 - 2;
}