Re: [hatari-devel] undefined behaviour fixes |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] undefined behaviour fixes
- From: Thomas Huth <th.huth@xxxxxxxxx>
- Date: Sat, 11 Jan 2025 07:36:11 +0000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1736580974; bh=48ROn1xTiTes59S8/GWiuVdIRcD+VzTMZvduVRLoAic=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type: Content-Transfer-Encoding:From; b=n92PW4gu5yIxMmTzb8kZSNqS74O0rpxlBj6KtAXL/qoUcIwdPC3kPbXQmLjECsnGb /85YuolKbdBTgNZZ22vj58+aF+gCKUHmMgYz8e3JytNMzVYcV62evQanfZ/nAb1XzE P/MUINbbMqt2eiAs5wP8sZzHlM6nT1nwJZnXq65YAGrRpefpIWPFlz0C09YQswSPc2 Y3s+jTVboVe3VrAeUpWd95y0qUl3hAYNegyX6hlaDZEfdwC3yHv+aiVs4JZLf9J6cD v8L0sfusgtoki74WN8/3SQa0GRwcVUwvXCjB2w+w254IVJy7/dSgTLalFAh5MwZZvb EKtW3SlJ3ilfw==
Am Sat, 11 Jan 2025 07:30:35 +0000
schrieb Thomas Huth <th.huth@xxxxxxxxx>:
....
>
> > Because I still think it is bad coding style to shift negative values and similar in my opinion we should only set -fwrapv where really necessary. So we should probably only do that in the CPU core, like in my previous patch. As I said previously, the parts of Hatari that are used in Previous including the DSP do not trigger any warning. So Hatari is aside from the CPU core likely to be clean and should stay like that.
>
> It's not. There is at least one more spot in the sound code:
>
> src/sound.c:389:18: runtime error: left shift of negative value -893
>
> Maybe Nicolas could have a look at it? ... those filters
> are not really my turf.
I guess the fix would be as easy as:
diff --git a/src/sound.c b/src/sound.c
--- a/src/sound.c
+++ b/src/sound.c
@@ -386,8 +386,8 @@ ymsample Subsonic_IIR_HPF_Left(ymsample x0)
if ( YM2149_HPF_Filter == YM2149_HPF_FILTER_NONE )
return x0;
- y1 += ((x0 - x1)<<15) - (y0<<6); /* 64*y0 */
- y0 = y1>>15;
+ y1 += ((x0 - x1) * 32768) - (y0 * 64); /* 64*y0 */
+ y0 = y1 / 32768;
x1 = x0;
return y0;
?
Thomas