diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2017-10-06 23:07:30 +1100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-10-06 23:15:32 +1100 |
commit | f8872e29ce06d78d3db71b3ab26a7465fc8a9586 (patch) | |
tree | b8ac53cb4aca9e6b62eec6b9fa5ddde34c4ecf9f /tests/testdata.h | |
parent | 48c91c08bcfa3cdc10284e048b3c0c629bd67adf (diff) | |
download | dtc-f8872e29ce06d78d3db71b3ab26a7465fc8a9586.zip dtc-f8872e29ce06d78d3db71b3ab26a7465fc8a9586.tar.gz dtc-f8872e29ce06d78d3db71b3ab26a7465fc8a9586.tar.bz2 |
tests: Avoid 64-bit arithmetic in assembler
For testing we (ab)use the assembler to build us a sample dtb, independent
of the other tools (dtc and libfdt) that we're trying to test. In a few
places this uses 64-bit arithmetic to decompose 64-bit constants into
the individual bytes in the blob.
Unfortunately, it seems that some builds of GNU as don't support >32 bit
arithmetic, though it's not entirely clear to me which do and which don't
(Fedora i386 does support 64-bit, Debian arm32 doesn't).
Anyway, to be safe, this avoids 64-bit arithmetic in assembler at the cost
of some extra awkwardness because we have to define the values in 32-bit
halves.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'tests/testdata.h')
-rw-r--r-- | tests/testdata.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/tests/testdata.h b/tests/testdata.h index 3588778..f6bbe1d 100644 --- a/tests/testdata.h +++ b/tests/testdata.h @@ -4,15 +4,25 @@ #define ASM_CONST_LL(x) (x##ULL) #endif -#define TEST_ADDR_1 ASM_CONST_LL(0xdeadbeef00000000) -#define TEST_SIZE_1 ASM_CONST_LL(0x100000) -#define TEST_ADDR_2 ASM_CONST_LL(123456789) -#define TEST_SIZE_2 ASM_CONST_LL(010000) +#define TEST_ADDR_1H ASM_CONST_LL(0xdeadbeef) +#define TEST_ADDR_1L ASM_CONST_LL(0x00000000) +#define TEST_ADDR_1 ((TEST_ADDR_1H << 32) | TEST_ADDR_1L) +#define TEST_SIZE_1H ASM_CONST_LL(0x00000000) +#define TEST_SIZE_1L ASM_CONST_LL(0x00100000) +#define TEST_SIZE_1 ((TEST_SIZE_1H << 32) | TEST_SIZE_1L) +#define TEST_ADDR_2H ASM_CONST_LL(0) +#define TEST_ADDR_2L ASM_CONST_LL(123456789) +#define TEST_ADDR_2 ((TEST_ADDR_2H << 32) | TEST_ADDR_2L) +#define TEST_SIZE_2H ASM_CONST_LL(0) +#define TEST_SIZE_2L ASM_CONST_LL(010000) +#define TEST_SIZE_2 ((TEST_SIZE_2H << 32) | TEST_SIZE_2L) #define TEST_VALUE_1 0xdeadbeef #define TEST_VALUE_2 123456789 -#define TEST_VALUE64_1 ASM_CONST_LL(0xdeadbeef01abcdef) +#define TEST_VALUE64_1H ASM_CONST_LL(0xdeadbeef) +#define TEST_VALUE64_1L ASM_CONST_LL(0x01abcdef) +#define TEST_VALUE64_1 ((TEST_VALUE64_1H << 32) | TEST_VALUE64_1L) #define PHANDLE_1 0x2000 #define PHANDLE_2 0x2001 |