Fix bsnes compilation for GCC 5.X

This commit is contained in:
Ilari Liusvaara 2015-08-08 11:13:39 +03:00
parent 918dc6db7b
commit 5ab3b133a4
25 changed files with 97 additions and 47 deletions

2
bsnes

@ -1 +1 @@
Subproject commit 9682df9e33c366dfe047a99c8bcefc2c8ab29620 Subproject commit f2bbef8a4e12e05190a68dfe410cff3e4b1eb13f

View file

@ -1,7 +1,7 @@
From b19b3b2d1d7a522af695f4482abb28e52804326b Mon Sep 17 00:00:00 2001 From b19b3b2d1d7a522af695f4482abb28e52804326b Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Wed, 9 Nov 2011 00:30:36 +0200 Date: Wed, 9 Nov 2011 00:30:36 +0200
Subject: [PATCH 01/23] Make libsnes compile Subject: [PATCH 01/24] Make libsnes compile
Changes between v083 and v084 had broken libsnes. Fix it so it at least Changes between v083 and v084 had broken libsnes. Fix it so it at least
compiles. compiles.
@ -78,5 +78,5 @@ index fbb4482..5f5ded6 100755
} }
SNES::cartridge.load(SNES::Cartridge::Mode::SuperGameBoy, xmlrom); SNES::cartridge.load(SNES::Cartridge::Mode::SuperGameBoy, xmlrom);
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From bb2fed04fbfe62a89e4bcfe90f44b4738f7c7c1a Mon Sep 17 00:00:00 2001 From bb2fed04fbfe62a89e4bcfe90f44b4738f7c7c1a Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Wed, 9 Nov 2011 00:31:59 +0200 Date: Wed, 9 Nov 2011 00:31:59 +0200
Subject: [PATCH 02/23] Fix bsnes version number in libsnes to be v085, not Subject: [PATCH 02/24] Fix bsnes version number in libsnes to be v085, not
v083 v083
--- ---
@ -22,5 +22,5 @@ index 5f5ded6..0e63075 100755
unsigned snes_library_revision_major(void) { unsigned snes_library_revision_major(void) {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 7379b4570e5755a5a1da25181ba4f5d1ca461a98 Mon Sep 17 00:00:00 2001 From 7379b4570e5755a5a1da25181ba4f5d1ca461a98 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Wed, 9 Nov 2011 00:37:44 +0200 Date: Wed, 9 Nov 2011 00:37:44 +0200
Subject: [PATCH 03/23] Don't use time() in emulating chips Subject: [PATCH 03/24] Don't use time() in emulating chips
Instead of using time() in chip emulation, create new interface method Instead of using time() in chip emulation, create new interface method
currentTime(), defaulting to time(0). This way frontend can cleanly currentTime(), defaulting to time(0). This way frontend can cleanly
@ -80,5 +80,5 @@ index f1a48c0..df975e8 100755
extern Interface *interface; extern Interface *interface;
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From efe1b5884c316ce070953edd87c6c9aeffffaa94 Mon Sep 17 00:00:00 2001 From efe1b5884c316ce070953edd87c6c9aeffffaa94 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Wed, 9 Nov 2011 01:52:08 +0200 Date: Wed, 9 Nov 2011 01:52:08 +0200
Subject: [PATCH 04/23] Save controller state when savestating Subject: [PATCH 04/24] Save controller state when savestating
When savestating, save the controller state and restore it upon loadstate. When savestating, save the controller state and restore it upon loadstate.
Prevents libsnes from mixing up buttons. Prevents libsnes from mixing up buttons.
@ -342,5 +342,5 @@ index f7d6f3b..08e7051 100755
if(cartridge.mode() == Cartridge::Mode::SufamiTurbo) sufamiturbo.serialize(s); if(cartridge.mode() == Cartridge::Mode::SufamiTurbo) sufamiturbo.serialize(s);
if(cartridge.mode() == Cartridge::Mode::SuperGameBoy) icd2.serialize(s); if(cartridge.mode() == Cartridge::Mode::SuperGameBoy) icd2.serialize(s);
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From cdf2f46490f128308eb7f399d03530936ebeda0a Mon Sep 17 00:00:00 2001 From cdf2f46490f128308eb7f399d03530936ebeda0a Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Fri, 11 Nov 2011 03:05:48 +0200 Date: Fri, 11 Nov 2011 03:05:48 +0200
Subject: [PATCH 05/23] Fix unserialization of 64-bit signed integers Subject: [PATCH 05/24] Fix unserialization of 64-bit signed integers
--- ---
nall/serializer.hpp | 2 +- nall/serializer.hpp | 2 +-
@ -21,5 +21,5 @@ index ff2337a..e6bc8fa 100755
isize += size; isize += size;
} }
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 4dc46334ec175e26277632fee4aea80768749af9 Mon Sep 17 00:00:00 2001 From 4dc46334ec175e26277632fee4aea80768749af9 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Fri, 11 Nov 2011 19:49:46 +0200 Date: Fri, 11 Nov 2011 19:49:46 +0200
Subject: [PATCH 06/23] Allow frontend to control random number seed Subject: [PATCH 06/24] Allow frontend to control random number seed
--- ---
snes/interface/interface.cpp | 5 +++++ snes/interface/interface.cpp | 5 +++++
@ -49,5 +49,5 @@ index c19a7c5..dbd912d 100755
region = config.region; region = config.region;
expansion = config.expansion_port; expansion = config.expansion_port;
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From eeaf6dc52d39ca9c150ff61864c11297d200d968 Mon Sep 17 00:00:00 2001 From eeaf6dc52d39ca9c150ff61864c11297d200d968 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Wed, 7 Mar 2012 16:57:18 +0200 Date: Wed, 7 Mar 2012 16:57:18 +0200
Subject: [PATCH 07/23] Fix mouse polling Subject: [PATCH 07/24] Fix mouse polling
Don't poll for mouse motion excessive number of times (no need to poll it for Don't poll for mouse motion excessive number of times (no need to poll it for
each bit!) each bit!)
@ -59,5 +59,5 @@ index b66ea51..b07c8ab 100755
+ int _position_y; + int _position_y;
}; };
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 7018377c93553071fc404db872b2746d40ac3bce Mon Sep 17 00:00:00 2001 From 7018377c93553071fc404db872b2746d40ac3bce Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sat, 1 Sep 2012 11:23:34 +0300 Date: Sat, 1 Sep 2012 11:23:34 +0300
Subject: [PATCH 08/23] Fix uninitialized variables Subject: [PATCH 08/24] Fix uninitialized variables
These uninitialized variables cause a lot of desyncs in Shadowrun. These uninitialized variables cause a lot of desyncs in Shadowrun.
--- ---
@ -138,5 +138,5 @@ index 9080624..d4ccf42 100755
void SMP::reset() { void SMP::reset() {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 6e0364c9a86caa71623a188a720b2d68b304b89b Mon Sep 17 00:00:00 2001 From 6e0364c9a86caa71623a188a720b2d68b304b89b Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Mon, 24 Sep 2012 21:46:09 +0300 Date: Mon, 24 Sep 2012 21:46:09 +0300
Subject: [PATCH 09/23] Add needed support for detecting true polls as opposed Subject: [PATCH 09/24] Add needed support for detecting true polls as opposed
to just autopolling to just autopolling
--- ---
@ -65,5 +65,5 @@ index 8b6aaa6..c5ee930 100755
//DMAPx //DMAPx
uint8 CPU::mmio_r43x0(uint8 i) { uint8 CPU::mmio_r43x0(uint8 i) {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From e397bd46f17d6ea00c8c96d5a8e0c5f5b4a6f642 Mon Sep 17 00:00:00 2001 From e397bd46f17d6ea00c8c96d5a8e0c5f5b4a6f642 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sun, 14 Oct 2012 23:31:36 +0300 Date: Sun, 14 Oct 2012 23:31:36 +0300
Subject: [PATCH 10/23] Fix compiling on GCC 4.7 Subject: [PATCH 10/24] Fix compiling on GCC 4.7
--- ---
nall/string.hpp | 2 +- nall/string.hpp | 2 +-
@ -22,5 +22,5 @@ index 1b255ce..07a64df 100755
#include <nall/string/convert.hpp> #include <nall/string/convert.hpp>
#include <nall/string/cstring.hpp> #include <nall/string/cstring.hpp>
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From e047aa8eb9883f60e4141effba8128a4a555d8be Mon Sep 17 00:00:00 2001 From e047aa8eb9883f60e4141effba8128a4a555d8be Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sun, 27 Oct 2013 10:52:45 +0200 Date: Sun, 27 Oct 2013 10:52:45 +0200
Subject: [PATCH 11/23] Support notifying latches Subject: [PATCH 11/24] Support notifying latches
--- ---
snes/cpu/mmio/mmio.cpp | 1 + snes/cpu/mmio/mmio.cpp | 1 +
@ -61,5 +61,5 @@ index 30ee7fd..203f7b0 100755
extern Interface *interface; extern Interface *interface;
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From a5b380757b086e3a00b47fe14e2a63c74683e8da Mon Sep 17 00:00:00 2001 From a5b380757b086e3a00b47fe14e2a63c74683e8da Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Thu, 28 Nov 2013 22:36:29 +0200 Date: Thu, 28 Nov 2013 22:36:29 +0200
Subject: [PATCH 12/23] Support unlimited number of breakpoints Subject: [PATCH 12/24] Support unlimited number of breakpoints
--- ---
snes/alt/cpu/cpu.cpp | 22 +++++++------- snes/alt/cpu/cpu.cpp | 22 +++++++-------
@ -795,5 +795,5 @@ index dffeeee..37ed1fe 100755
namespace SNES { namespace SNES {
namespace Info { namespace Info {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 8bc6bb381e680616dcc843c99889799aedd43163 Mon Sep 17 00:00:00 2001 From 8bc6bb381e680616dcc843c99889799aedd43163 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sat, 30 Nov 2013 10:27:37 +0200 Date: Sat, 30 Nov 2013 10:27:37 +0200
Subject: [PATCH 13/23] Support auto-detecting bsnes version Subject: [PATCH 13/24] Support auto-detecting bsnes version
--- ---
bsnes.mk | 3 +++ bsnes.mk | 3 +++
@ -18,5 +18,5 @@ index 0000000..20f22f6
+LIBSNES_DIR=ui-libsnes +LIBSNES_DIR=ui-libsnes
+BSNES_VERSION=085 +BSNES_VERSION=085
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 40c456dadd79cb2c94379fda8b41a4d0ba051ad1 Mon Sep 17 00:00:00 2001 From 40c456dadd79cb2c94379fda8b41a4d0ba051ad1 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sat, 7 Dec 2013 23:32:44 +0200 Date: Sat, 7 Dec 2013 23:32:44 +0200
Subject: [PATCH 14/23] Support alternate (more accurate) poll timings Subject: [PATCH 14/24] Support alternate (more accurate) poll timings
--- ---
snes/config/config.cpp | 1 + snes/config/config.cpp | 1 +
@ -134,5 +134,5 @@ index 37ed1fe..4e3ba64 100755
namespace SNES { namespace SNES {
namespace Info { namespace Info {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 863bde899b53ae31e854096ac5258208c848a293 Mon Sep 17 00:00:00 2001 From 863bde899b53ae31e854096ac5258208c848a293 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Thu, 6 Mar 2014 21:07:54 +0200 Date: Thu, 6 Mar 2014 21:07:54 +0200
Subject: [PATCH 15/23] Fix mouse speed support Subject: [PATCH 15/24] Fix mouse speed support
--- ---
snes/config/config.cpp | 1 + snes/config/config.cpp | 1 +
@ -99,5 +99,5 @@ index b07c8ab..13a9313 100755
int _position_y; int _position_y;
}; };
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 60267d1f22fd2ff3197c6c829640f66304c89283 Mon Sep 17 00:00:00 2001 From 60267d1f22fd2ff3197c6c829640f66304c89283 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sun, 16 Mar 2014 16:40:55 +0200 Date: Sun, 16 Mar 2014 16:40:55 +0200
Subject: [PATCH 16/23] Fix tracelog of controller registers Subject: [PATCH 16/24] Fix tracelog of controller registers
--- ---
snes/cpu/core/disassembler/disassembler.cpp | 2 ++ snes/cpu/core/disassembler/disassembler.cpp | 2 ++
@ -21,5 +21,5 @@ index ab8dde2..624a80c 100755
//$[00-3f|80-bf]:[2000-5fff] //$[00-3f|80-bf]:[2000-5fff]
//do not read MMIO registers within debugger //do not read MMIO registers within debugger
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From de71f12eb59a41899a5c77d797e144e6f0919777 Mon Sep 17 00:00:00 2001 From de71f12eb59a41899a5c77d797e144e6f0919777 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Mon, 17 Mar 2014 14:22:58 +0200 Date: Mon, 17 Mar 2014 14:22:58 +0200
Subject: [PATCH 17/23] Fix performance problem with non-bus breakpoints Subject: [PATCH 17/24] Fix performance problem with non-bus breakpoints
--- ---
snes/memory/memory.cpp | 35 ++++++++++++++++++++++++++--------- snes/memory/memory.cpp | 35 ++++++++++++++++++++++++++---------
@ -101,5 +101,5 @@ index 4e3ba64..9589db9 100755
#include <gameboy/gameboy.hpp> #include <gameboy/gameboy.hpp>
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 6bd069191d29ad70d38c82d59dd72cd0996fc45c Mon Sep 17 00:00:00 2001 From 6bd069191d29ad70d38c82d59dd72cd0996fc45c Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Mon, 31 Mar 2014 20:17:46 +0300 Date: Mon, 31 Mar 2014 20:17:46 +0300
Subject: [PATCH 18/23] Support VRAM, OAM, CGRAM and APURAM breakpoints Subject: [PATCH 18/24] Support VRAM, OAM, CGRAM and APURAM breakpoints
--- ---
snes/alt/ppu-compatibility/memory/memory.cpp | 44 +++++++++++++++++++++-- snes/alt/ppu-compatibility/memory/memory.cpp | 44 +++++++++++++++++++++--
@ -533,5 +533,5 @@ index 9589db9..27632bf 100755
namespace SNES { namespace SNES {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From f1106d3dffd27dab526a703aa434512495fbacea Mon Sep 17 00:00:00 2001 From f1106d3dffd27dab526a703aa434512495fbacea Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Mon, 14 Apr 2014 21:21:36 +0300 Date: Mon, 14 Apr 2014 21:21:36 +0300
Subject: [PATCH 19/23] SA1 trace hook support Subject: [PATCH 19/24] SA1 trace hook support
--- ---
snes/chip/sa1/sa1.cpp | 2 ++ snes/chip/sa1/sa1.cpp | 2 ++
@ -49,5 +49,5 @@ index 27632bf..3bdca7e 100755
namespace SNES { namespace SNES {
namespace Info { namespace Info {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From cf662a12578778cb50c25d5275ce58deabd7eabe Mon Sep 17 00:00:00 2001 From cf662a12578778cb50c25d5275ce58deabd7eabe Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Wed, 30 Apr 2014 00:18:58 +0300 Date: Wed, 30 Apr 2014 00:18:58 +0300
Subject: [PATCH 20/23] Fixes to SA1 open bus emulation Subject: [PATCH 20/24] Fixes to SA1 open bus emulation
--- ---
snes/chip/sa1/memory/memory.cpp | 19 +++++++++++-------- snes/chip/sa1/memory/memory.cpp | 19 +++++++++++--------
@ -74,5 +74,5 @@ index 9bb4ff2..614dfb0 100755
uint8 SA1::mmc_read(unsigned addr) { uint8 SA1::mmc_read(unsigned addr) {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 63fc77b07d517c2f9a0fd6ca3fa94f30fb0f5ec2 Mon Sep 17 00:00:00 2001 From 63fc77b07d517c2f9a0fd6ca3fa94f30fb0f5ec2 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sun, 15 Jun 2014 22:01:26 +0300 Date: Sun, 15 Jun 2014 22:01:26 +0300
Subject: [PATCH 21/23] Call notify latch function on alternate timings mode Subject: [PATCH 21/24] Call notify latch function on alternate timings mode
too too
--- ---
@ -21,5 +21,5 @@ index ae8e94f..3fd4d23 100755
input.port2->latch(1); input.port2->latch(1);
} }
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 5bc96b8aeea26729ef4399c2d8d5e562894616e1 Mon Sep 17 00:00:00 2001 From 5bc96b8aeea26729ef4399c2d8d5e562894616e1 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Tue, 20 Jan 2015 10:04:58 +0200 Date: Tue, 20 Jan 2015 10:04:58 +0200
Subject: [PATCH 22/23] Support DMA tracing Subject: [PATCH 22/24] Support DMA tracing
--- ---
snes/alt/ppu-compatibility/mmio/mmio.cpp | 18 +++++++ snes/alt/ppu-compatibility/mmio/mmio.cpp | 18 +++++++
@ -284,5 +284,5 @@ index 3bdca7e..7c48ebb 100755
namespace SNES { namespace SNES {
namespace Info { namespace Info {
-- --
2.1.4 2.5.0

View file

@ -1,7 +1,7 @@
From 9682df9e33c366dfe047a99c8bcefc2c8ab29620 Mon Sep 17 00:00:00 2001 From 9682df9e33c366dfe047a99c8bcefc2c8ab29620 Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sat, 24 Jan 2015 16:46:18 +0200 Date: Sat, 24 Jan 2015 16:46:18 +0200
Subject: [PATCH 23/23] Add autopoller and IRQ/NMI tracing Subject: [PATCH 23/24] Add autopoller and IRQ/NMI tracing
--- ---
snes/cpu/cpu.cpp | 3 +++ snes/cpu/cpu.cpp | 3 +++
@ -82,5 +82,5 @@ index 3fd4d23..afca750 100755
status.auto_joypad_counter++; status.auto_joypad_counter++;
} }
-- --
2.1.4 2.5.0

View file

@ -0,0 +1,50 @@
From f2bbef8a4e12e05190a68dfe410cff3e4b1eb13f Mon Sep 17 00:00:00 2001
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Date: Sat, 8 Aug 2015 11:09:41 +0300
Subject: [PATCH 24/24] Build fixes for GCC 5.X
---
nall/bit.hpp | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/nall/bit.hpp b/nall/bit.hpp
index 67a35ad..11d9d8d 100755
--- a/nall/bit.hpp
+++ b/nall/bit.hpp
@@ -8,18 +8,27 @@ namespace nall {
}
template<int bits> constexpr inline unsigned uclip(const unsigned x) {
- enum { m = (1U << (bits - 1)) + ((1U << (bits - 1)) - 1) };
- return (x & m);
+ return x & ((1U << (bits - 1)) + ((1U << (bits - 1)) - 1));
+ }
+
+ template<int bits> constexpr inline signed sclamp_b() {
+ return 1U << (bits - 1);
+ }
+
+ template<int bits> constexpr inline signed sclamp_m() {
+ return (1U << (bits - 1)) - 1;
}
template<int bits> constexpr inline signed sclamp(const signed x) {
- enum { b = 1U << (bits - 1), m = (1U << (bits - 1)) - 1 };
- return (x > m) ? m : (x < -b) ? -b : x;
+ return (x > sclamp_m<bits>()) ? sclamp_m<bits>() : (x < -sclamp_b<bits>()) ? -sclamp_b<bits>() : x;
+ }
+
+ template<int bits> constexpr inline signed sclip_m() {
+ return (1U << (bits)) - 1;
}
template<int bits> constexpr inline signed sclip(const signed x) {
- enum { b = 1U << (bits - 1), m = (1U << bits) - 1 };
- return ((x & m) ^ b) - b;
+ return ((x & sclip_m<bits>()) ^ sclamp_b<bits>()) - sclamp_b<bits>();
}
namespace bit {
--
2.5.0