From 85c60f54073b798d64419b0d6239a4d12fd733ff Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sun, 28 Feb 2016 13:51:09 +0000 Subject: [PATCH 1/2] Added more sign_extend tests for unsigned values. --- test/test_binary.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/test/test_binary.cpp b/test/test_binary.cpp index 237b307b..238f7b9b 100644 --- a/test/test_binary.cpp +++ b/test/test_binary.cpp @@ -934,6 +934,27 @@ namespace CHECK_EQUAL(-357913942, (etl::sign_extend(value32))); CHECK_EQUAL(-357913942, (etl::sign_extend(value32))); + + value8 = 0x0A; + value8 &= 0x3F; // 6 bit number. + + CHECK_EQUAL(10, (etl::sign_extend(value8))); + CHECK_EQUAL(10, (etl::sign_extend(value8))); + CHECK_EQUAL(10, (etl::sign_extend(value8))); + CHECK_EQUAL(10, (etl::sign_extend(value8))); + + value16 = 0x0AAA; + value16 &= 0x3FFF; // 14 bit number. + + CHECK_EQUAL(2730, (etl::sign_extend(value16))); + CHECK_EQUAL(2730, (etl::sign_extend(value16))); + CHECK_EQUAL(2730, (etl::sign_extend(value16))); + + value32 = 0x0AAAAAAA; + value32 &= 0x3FFFFFFF; // 30 bit number. + + CHECK_EQUAL(178956970, (etl::sign_extend(value32))); + CHECK_EQUAL(178956970, (etl::sign_extend(value32))); } //************************************************************************* @@ -959,6 +980,27 @@ namespace CHECK_EQUAL(-357913942, (etl::sign_extend(value32, 30))); CHECK_EQUAL(-357913942, (etl::sign_extend(value32, 30))); + + value8 = 0x0A; + value8 &= 0x3F; // 6 bit number. + + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + CHECK_EQUAL(10, (etl::sign_extend(value8, 6))); + + value16 = 0x0AAA; + value16 &= 0x3FFF; // 14 bit number. + + CHECK_EQUAL(2730, (etl::sign_extend(value16, 14))); + CHECK_EQUAL(2730, (etl::sign_extend(value16, 14))); + CHECK_EQUAL(2730, (etl::sign_extend(value16, 14))); + + value32 = 0x0AAAAAAA; + value32 &= 0x3FFFFFFF; // 30 bit number. + + CHECK_EQUAL(178956970, (etl::sign_extend(value32, 30))); + CHECK_EQUAL(178956970, (etl::sign_extend(value32, 30))); } }; } From 9b2ace4946f24dd678c57841d2d1b835135d49a7 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sun, 28 Feb 2016 13:51:58 +0000 Subject: [PATCH 2/2] Added platform constants header for Arduino --- etl_arduino.h | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 etl_arduino.h diff --git a/etl_arduino.h b/etl_arduino.h new file mode 100644 index 00000000..7efdae0c --- /dev/null +++ b/etl_arduino.h @@ -0,0 +1,8 @@ + + +#ifndef __ETL_PLATFORM_ARDUINO__ + +#define COMPILER_GCC +#define PLATFORM_ARM + +#endif