diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/regression/tests/getbyte.c | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'support/regression/tests/getbyte.c')
| -rw-r--r-- | support/regression/tests/getbyte.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/support/regression/tests/getbyte.c b/support/regression/tests/getbyte.c new file mode 100644 index 0000000..142db59 --- /dev/null +++ b/support/regression/tests/getbyte.c @@ -0,0 +1,30 @@ +/* getbyte/getword + sign: unsigned, signed +*/ + +#include <testfwk.h> +#include <stdint.h> + +{sign} long global = ({sign} long)0x12345678; + +void testGet(void) +{ + ASSERT (((global >> 0) & 0xFF) == 0x78); // getByte 0 + ASSERT (((global >> 8) & 0xFF) == 0x56); // getByte 1 + ASSERT (((global >> 16) & 0xFF) == 0x34); // getByte 2 + ASSERT (((global >> 24) & 0xFF) == 0x12); // getByte 3 +#if !defined(__SDCC_pdk14) // Lack of memory - see RFE #617. + ASSERT (((global >> 0) & 0xFFFF) == 0x5678); // getWord 0 + ASSERT (((global >> 8) & 0xFFFF) == 0x3456); // getWord 1 + ASSERT (((global >> 16) & 0xFFFF) == 0x1234); // getWord 2 + + ASSERT ((uint8_t)(global >> 0) == (uint8_t)0x78); // getByte 0 + ASSERT ((uint8_t)(global >> 8) == (uint8_t)0x56); // getByte 1 + ASSERT ((uint8_t)(global >> 16) == (uint8_t)0x34); // getByte 2 + ASSERT ((uint8_t)(global >> 24) == (uint8_t)0x12); // getByte 3 + + ASSERT ((uint16_t)(global >> 0) == (uint16_t)0x5678); // getWord 0 + ASSERT ((uint16_t)(global >> 8) == (uint16_t)0x3456); // getWord 1 + ASSERT ((uint16_t)(global >> 16) == (uint16_t)0x1234); // getWord 2 +#endif +} |
