aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2024-02-08 16:17:47 -0300
committerGitHub <noreply@github.com>2024-02-08 20:17:47 +0100
commitea07328aea4b6d70f5d5aa2c3c3874a748854ba1 (patch)
treefe457b413e0abb7dd48073659ef3c3aa3f9229a9 /src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs
parenta0b3d82ee0d808b894de3a2e61b78f48aec5ffb0 (diff)
LightningJit: Reduce stack usage for Arm32 code (#6245)1.1.1171
* Write/read guest state to context for sync points, stop reserving stack for them * Fix UsedGprsMask not being updated when allocating with preferencing * POP should be also considered a return
Diffstat (limited to 'src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs')
-rw-r--r--src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs
index a213c222..ca25057f 100644
--- a/src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs
+++ b/src/Ryujinx.Cpu/LightningJit/Arm32/MultiBlock.cs
@@ -6,6 +6,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm32
{
public readonly List<Block> Blocks;
public readonly bool HasHostCall;
+ public readonly bool HasHostCallSkipContext;
public readonly bool IsTruncated;
public MultiBlock(List<Block> blocks)
@@ -15,12 +16,14 @@ namespace Ryujinx.Cpu.LightningJit.Arm32
Block block = blocks[0];
HasHostCall = block.HasHostCall;
+ HasHostCallSkipContext = block.HasHostCallSkipContext;
for (int index = 1; index < blocks.Count; index++)
{
block = blocks[index];
HasHostCall |= block.HasHostCall;
+ HasHostCallSkipContext |= block.HasHostCallSkipContext;
}
block = blocks[^1];