From b7569147823a8fc5a9de98e5d491da906e119296 Mon Sep 17 00:00:00 2001 From: notaz Date: Sun, 28 Oct 2012 16:32:24 +0200 Subject: psx_gpu: workaround overflow crash rare corner case --- plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S') diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S b/plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S index a2bfa5b..4e1e403 100644 --- a/plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S +++ b/plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S @@ -1175,6 +1175,10 @@ function(setup_spans_up_down) ldrh temp, [ psx_gpu, #psx_gpu_num_spans_offset ] add temp, temp, height_minor_b + + cmp temp, #MAX_SPANS + beq 5f + strh temp, [ psx_gpu, #psx_gpu_num_spans_offset ] 2: @@ -1190,6 +1194,15 @@ function(setup_spans_up_down) setup_spans_prologue_b() bal 4b + 5: + // FIXME: overflow corner case + sub temp, temp, height_minor_b + bics height_minor_b, #3 + add temp, temp, height_minor_b + strh temp, [ psx_gpu, #psx_gpu_num_spans_offset ] + bne 2b + bal 1b + .pool #undef span_uvrg_offset -- cgit v1.2.3