From b25d8db9949ed5d16408a06fe0906f424e53ae85 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 9 Jun 2024 17:12:06 +0200 Subject: [ARM64_DYNAREC] Fixed an issue when not purging Ymm0 on internal jump with less Ymm0 --- src/dynarec/arm64/dynarec_arm64_helper.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/dynarec/arm64/dynarec_arm64_helper.c b/src/dynarec/arm64/dynarec_arm64_helper.c index 42f09b21..084689ec 100644 --- a/src/dynarec/arm64/dynarec_arm64_helper.c +++ b/src/dynarec/arm64/dynarec_arm64_helper.c @@ -2269,16 +2269,16 @@ static void fpuCacheTransform(dynarec_arm_t* dyn, int ninst, int s1, int s2, int } // ymm0 s3_top = 1; - if(dyn->ymm_zero && dyn->insts[i2].purge_ymm) { + uint16_t to_purge = dyn->ymm_zero&~dyn->insts[i2].ymm0_in; + if(dyn->ymm_zero && (dyn->insts[i2].purge_ymm|to_purge)) { for(int i=0; i<16; ++i) - if(dyn->insts[i2].purge_ymm&(1<insts[i2].purge_ymm|to_purge)&(1< %d -\n", stack_cnt, cache_i2.stack); -- cgit 1.4.1