diff options
Diffstat (limited to 'target-arm')
-rw-r--r-- | target-arm/translate-a64.c | 3 | ||||
-rw-r--r-- | target-arm/translate.c | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c index 654a58645c..5022fc35c6 100644 --- a/target-arm/translate-a64.c +++ b/target-arm/translate-a64.c @@ -11072,6 +11072,9 @@ void gen_intermediate_code_internal_a64(ARMCPU *cpu, if (max_insns == 0) { max_insns = CF_COUNT_MASK; } + if (max_insns > TCG_MAX_INSNS) { + max_insns = TCG_MAX_INSNS; + } gen_tb_start(tb); diff --git a/target-arm/translate.c b/target-arm/translate.c index fb69ecb03d..fedb7814bd 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -11258,8 +11258,12 @@ static inline void gen_intermediate_code_internal(ARMCPU *cpu, lj = -1; num_insns = 0; max_insns = tb->cflags & CF_COUNT_MASK; - if (max_insns == 0) + if (max_insns == 0) { max_insns = CF_COUNT_MASK; + } + if (max_insns > TCG_MAX_INSNS) { + max_insns = TCG_MAX_INSNS; + } gen_tb_start(tb); |