From 9e4a70edbd7255cd0e00e92acc2c7e131cedeaf7 Mon Sep 17 00:00:00 2001 From: Antonin Bas Date: Tue, 2 Jan 2018 10:33:08 -0800 Subject: [PATCH] Call export_bytes in Data::two_comp_mod operator Fixes #476 --- include/bm/bm_sim/data.h | 4 +++- tests/test_data.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/bm/bm_sim/data.h b/include/bm/bm_sim/data.h index 50b9cad3b..a3159556c 100644 --- a/include/bm/bm_sim/data.h +++ b/include/bm/bm_sim/data.h @@ -315,7 +315,8 @@ class Data { //! NC void two_comp_mod(const Data &src, const Data &width) { - static Bignum one(1); + // used to implement (int) casts in P4_16 + static const Bignum one(1); unsigned int uwidth = width.get_uint(); Bignum mask = (one << uwidth) - 1; Bignum max = (one << (uwidth - 1)) - 1; @@ -327,6 +328,7 @@ class Data { } else { value = src.value; } + export_bytes(); } //! NC diff --git a/tests/test_data.cpp b/tests/test_data.cpp index cb3a3aefa..2ab11bde5 100644 --- a/tests/test_data.cpp +++ b/tests/test_data.cpp @@ -139,7 +139,7 @@ namespace { void test_two_comp_mod(int src, unsigned int width, int expected) { Data dst; dst.two_comp_mod(Data(src), Data(width)); - ASSERT_EQ(expected, dst.get_int()); + EXPECT_EQ(expected, dst.get_int()); } } // namespace