From fbdff974fe7d2040c25dee1d35781f7e70d87d6c Mon Sep 17 00:00:00 2001 From: xleroy Date: Mon, 29 Apr 2013 07:51:00 +0000 Subject: Revert suppression of __builtin_{read,write}_reversed for x86 and ARM, for compatibility with earlier CompCert versions. But don't use them in PackedStructs. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2216 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- test/regression/Results/builtins-arm | 4 ++++ test/regression/Results/builtins-ia32 | 4 ++++ test/regression/builtins-arm.c | 7 +++++++ test/regression/builtins-ia32.c | 8 ++++++++ 4 files changed, 23 insertions(+) (limited to 'test') diff --git a/test/regression/Results/builtins-arm b/test/regression/Results/builtins-arm index e60c159..7925545 100644 --- a/test/regression/Results/builtins-arm +++ b/test/regression/Results/builtins-arm @@ -2,3 +2,7 @@ bswap(12345678) = 78563412 bswap16(1234) = 3412 cntlz(12345678) = 3 fsqrt(3.141590) = 1.772453 +read_16_rev = 3412 +read_32_rev = efbeadde +after write_16_rev: 9a78 +after write_32_rev: 78563412 diff --git a/test/regression/Results/builtins-ia32 b/test/regression/Results/builtins-ia32 index 52d6daf..c16c6ae 100644 --- a/test/regression/Results/builtins-ia32 +++ b/test/regression/Results/builtins-ia32 @@ -3,3 +3,7 @@ bswap16(1234) = 3412 fsqrt(3.141590) = 1.772453 fmin(3.141590, 2.718000) = 2.718000 fmax(3.141590, 2.718000) = 3.141590 +read_16_rev = 3412 +read_32_rev = efbeadde +after write_16_rev: 9a78 +after write_32_rev: 78563412 diff --git a/test/regression/builtins-arm.c b/test/regression/builtins-arm.c index 41ea88b..a80cdcd 100644 --- a/test/regression/builtins-arm.c +++ b/test/regression/builtins-arm.c @@ -14,6 +14,13 @@ int main(int argc, char ** argv) printf("cntlz(%x) = %d\n", x, __builtin_cntlz(x)); printf("fsqrt(%f) = %f\n", a, __builtin_fsqrt(a)); + printf ("read_16_rev = %x\n", __builtin_read16_reversed(&s)); + printf ("read_32_rev = %x\n", __builtin_read32_reversed(&y)); + __builtin_write16_reversed(&s, 0x789A); + printf ("after write_16_rev: %x\n", s); + __builtin_write32_reversed(&y, 0x12345678); + printf ("after write_32_rev: %x\n", y); + return 0; } diff --git a/test/regression/builtins-ia32.c b/test/regression/builtins-ia32.c index 43e4566..1408444 100644 --- a/test/regression/builtins-ia32.c +++ b/test/regression/builtins-ia32.c @@ -5,6 +5,7 @@ int main(int argc, char ** argv) { unsigned int x = 0x12345678; + unsigned int y = 0xDEADBEEF; double a = 3.14159; double b = 2.718; unsigned short s = 0x1234; @@ -16,6 +17,13 @@ int main(int argc, char ** argv) printf("fmin(%f, %f) = %f\n", a, b, __builtin_fmin(a, b)); printf("fmax(%f, %f) = %f\n", a, b, __builtin_fmax(a, b)); + printf ("read_16_rev = %x\n", __builtin_read16_reversed(&s)); + printf ("read_32_rev = %x\n", __builtin_read32_reversed(&y)); + __builtin_write16_reversed(&s, 0x789A); + printf ("after write_16_rev: %x\n", s); + __builtin_write32_reversed(&y, 0x12345678); + printf ("after write_32_rev: %x\n", y); + return 0; } -- cgit v1.2.3