diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-10-11 10:18:40 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-10-11 10:18:40 +0200 |
commit | 03672b4bbb2c837ea61a716d0ae67d87f68d20f8 (patch) | |
tree | d0ec8447f1b87b46d9dc49df81f91d80245cd396 | |
parent | 9a62a6663a25c74c537f79bfc767f75fd4994181 (diff) | |
parent | 4794195dd38d18ce93cc169d69bf35883700b616 (diff) | |
download | compcert-kvx-03672b4bbb2c837ea61a716d0ae67d87f68d20f8.tar.gz compcert-kvx-03672b4bbb2c837ea61a716d0ae67d87f68d20f8.zip |
Merge branch 'ppc64' of ssh://github.com/AbsInt/CompCert into ppc64
-rw-r--r-- | runtime/Makefile | 10 | ||||
-rw-r--r-- | runtime/powerpc/ppc64/i64_dtou.s | 4 | ||||
-rw-r--r-- | test/regression/Results/builtins-powerpc | 2 | ||||
-rw-r--r-- | test/regression/builtins-powerpc.c | 2 |
4 files changed, 15 insertions, 3 deletions
diff --git a/runtime/Makefile b/runtime/Makefile index 2fe32881..99eeaa54 100644 --- a/runtime/Makefile +++ b/runtime/Makefile @@ -9,7 +9,15 @@ LIB=libcompcert.a INCLUDES=include/float.h include/stdarg.h include/stdbool.h \ include/stddef.h include/varargs.h -VPATH=$(ARCH)/$(MODEL) $(ARCH) +VPATH=$(ARCH) + +ifeq ($(ARCH),powerpc) +ifeq ($(MODEL),ppc64) +VPATH=powerpc/ppc64 $(ARCH) +else ifeq ($(MODEL),e5500) +VPATH=powerpc/ppc64 $(ARCH) +endif +endif ifeq ($(strip $(HAS_RUNTIME_LIB)),true) all: $(LIB) diff --git a/runtime/powerpc/ppc64/i64_dtou.s b/runtime/powerpc/ppc64/i64_dtou.s index 665037ea..60d5c9bf 100644 --- a/runtime/powerpc/ppc64/i64_dtou.s +++ b/runtime/powerpc/ppc64/i64_dtou.s @@ -44,7 +44,7 @@ __i64_dtou: lis r0, 0x5f00 # 0x5f00_0000 = 2^63 in binary32 format stwu r0, -16(r1) lfs f2, 0(r1) # f2 = 2^63 - fcmpu f1, f2 # crbit 0 is f1 < f2 + fcmpu cr0, f1, f2 # crbit 0 is f1 < f2 bf 0, 1f # branch if f1 >= 2^63 (or f1 is NaN) fctidz f1, f1 # convert as signed stfd f1, 0(r1) @@ -63,4 +63,4 @@ __i64_dtou: .type __i64_dtou, @function .size __i64_dtou, .-__i64_dtou -
\ No newline at end of file + diff --git a/test/regression/Results/builtins-powerpc b/test/regression/Results/builtins-powerpc index 0fd07f69..b131e543 100644 --- a/test/regression/Results/builtins-powerpc +++ b/test/regression/Results/builtins-powerpc @@ -15,6 +15,8 @@ fsel(-3.141590, 2.718000, 1.414000) = 1.414000 fcti(3.141590) = 3 fcti(2.718000) = 3 fcti(1.414000) = 1 +isel(0, 305419896, -559038737) = -559038737 +isel(42, 305419896, -559038737) = 305419896 read_16_rev = 3412 read_32_rev = efbeadde after write_16_rev: 9a78 diff --git a/test/regression/builtins-powerpc.c b/test/regression/builtins-powerpc.c index 90030737..5cb2e293 100644 --- a/test/regression/builtins-powerpc.c +++ b/test/regression/builtins-powerpc.c @@ -41,6 +41,8 @@ int main(int argc, char ** argv) __builtin_eieio(); __builtin_sync(); __builtin_isync(); + printf("isel(%d, %d, %d) = %d\n", 0, x, y, __builtin_isel(0, x, y)); + printf("isel(%d, %d, %d) = %d\n", 42, x, y, __builtin_isel(42, x, y)); 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); |