From 836e51b694f33d864cf4962d1dd3718bb56803c6 Mon Sep 17 00:00:00 2001 From: David Guillen Fandos Date: Wed, 30 Jun 2021 00:29:21 +0200 Subject: Fix some UB behaviour --- cpu.c | 2 +- sound.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cpu.c b/cpu.c index 873a5e3..60ff3bc 100644 --- a/cpu.c +++ b/cpu.c @@ -266,7 +266,7 @@ void print_register_usage(void) using_register_list(arm, reg_list, 16) \ #define arm_decode_branch() \ - s32 offset = ((s32)(opcode & 0xFFFFFF) << 8) >> 6 \ + s32 offset = ((s32)((u32)(opcode << 8))) >> 6 \ #define thumb_decode_shift() \ diff --git a/sound.c b/sound.c index bc88fff..76c3525 100644 --- a/sound.c +++ b/sound.c @@ -85,9 +85,9 @@ void sound_timer(fixed8_24 frequency_step, u32 channel) u32 buffer_index = ds->buffer_index; s16 current_sample, next_sample; - current_sample = ds->fifo[ds->fifo_base] << 4; + current_sample = ds->fifo[ds->fifo_base] * 16; ds->fifo_base = (ds->fifo_base + 1) % 32; - next_sample = ds->fifo[ds->fifo_base] << 4; + next_sample = ds->fifo[ds->fifo_base] * 16; if(sound_on == 1) { @@ -655,7 +655,7 @@ void render_audio(void) current_sample = 2047; if(current_sample < -2048) current_sample = -2048; - stream_base[i] = current_sample << 4; + stream_base[i] = current_sample * 16; source[i] = 0; } audio_batch_cb(stream_base, 256); -- cgit v1.2.3