Skip to content

Commit

Permalink
formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
Adam Hathcock committed Apr 8, 2024
1 parent 09f2410 commit 6553e9b
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 23 deletions.
7 changes: 4 additions & 3 deletions src/SharpCompress/Compressors/Filters/BCJFilterARM64.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ protected override int Transform(byte[] buffer, int offset, int count)
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)
{
Expand All @@ -35,8 +37,7 @@ protected override int Transform(byte[] buffer, int offset, int count)
}
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;
Expand Down
46 changes: 26 additions & 20 deletions src/SharpCompress/Compressors/Filters/BCJFilterRISCV.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,17 @@ private int Decode(byte[] buffer, int offset, int count)
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;
}
Expand All @@ -60,7 +56,9 @@ private int Decode(byte[] buffer, int offset, int count)

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;
Expand All @@ -81,14 +79,15 @@ private int Decode(byte[] buffer, int offset, int count)
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);
Expand Down Expand Up @@ -123,7 +122,8 @@ private int Encode(byte[] buffer, int offset, int count)
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)
Expand All @@ -132,8 +132,7 @@ private int Encode(byte[] buffer, int offset, int count)

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);

Expand All @@ -149,7 +148,9 @@ private int Encode(byte[] buffer, int offset, int count)

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;
Expand All @@ -173,14 +174,19 @@ private int Encode(byte[] buffer, int offset, int count)
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;
}
Expand Down

0 comments on commit 6553e9b

Please sign in to comment.