compiler, runtime: Memcmp routine returns intgo.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 6 Nov 2012 18:12:45 +0000 (18:12 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 6 Nov 2012 18:12:45 +0000 (18:12 +0000)
From-SVN: r193253

gcc/go/gofrontend/runtime.def
libgo/Makefile.am
libgo/Makefile.in
libgo/runtime/go-memcmp.c [new file with mode: 0644]

index fc720cd..d689533 100644 (file)
@@ -29,7 +29,7 @@
 // result types.
 
 // The standard C memcmp function, used for struct comparisons.
-DEF_GO_RUNTIME(MEMCMP, "memcmp", P3(POINTER, POINTER, UINTPTR), R1(INT))
+DEF_GO_RUNTIME(MEMCMP, "__go_memcmp", P3(POINTER, POINTER, UINTPTR), R1(INT))
 
 // Range over a string, returning the next index.
 DEF_GO_RUNTIME(STRINGITER, "runtime.stringiter", P2(STRING, INT), R1(INT))
index 3cb39c0..4b244ad 100644 (file)
@@ -462,6 +462,7 @@ runtime_files = \
        runtime/go-map-len.c \
        runtime/go-map-range.c \
        runtime/go-matherr.c \
+       runtime/go-memcmp.c \
        runtime/go-nanotime.c \
        runtime/go-now.c \
        runtime/go-new-map.c \
index 4c13da5..e70ded3 100644 (file)
@@ -201,19 +201,19 @@ am__objects_5 = go-append.lo go-assert.lo go-assert-interface.lo \
        go-interface-compare.lo go-interface-eface-compare.lo \
        go-interface-val-compare.lo go-make-slice.lo go-map-delete.lo \
        go-map-index.lo go-map-len.lo go-map-range.lo go-matherr.lo \
-       go-nanotime.lo go-now.lo go-new-map.lo go-new.lo go-nosys.lo \
-       go-panic.lo go-print.lo go-recover.lo go-reflect-call.lo \
-       go-reflect-map.lo go-rune.lo go-runtime-error.lo go-setenv.lo \
-       go-signal.lo go-strcmp.lo go-string-to-byte-array.lo \
-       go-string-to-int-array.lo go-strplus.lo go-strslice.lo \
-       go-traceback.lo go-trampoline.lo go-type-complex.lo \
-       go-type-eface.lo go-type-error.lo go-type-float.lo \
-       go-type-identity.lo go-type-interface.lo go-type-string.lo \
-       go-typedesc-equal.lo go-typestring.lo go-unsafe-new.lo \
-       go-unsafe-newarray.lo go-unsafe-pointer.lo go-unwind.lo \
-       chan.lo cpuprof.lo lfstack.lo $(am__objects_1) mcache.lo \
-       mcentral.lo $(am__objects_2) mfinal.lo mfixalloc.lo mgc0.lo \
-       mheap.lo msize.lo panic.lo parfor.lo print.lo proc.lo \
+       go-memcmp.lo go-nanotime.lo go-now.lo go-new-map.lo go-new.lo \
+       go-nosys.lo go-panic.lo go-print.lo go-recover.lo \
+       go-reflect-call.lo go-reflect-map.lo go-rune.lo \
+       go-runtime-error.lo go-setenv.lo go-signal.lo go-strcmp.lo \
+       go-string-to-byte-array.lo go-string-to-int-array.lo \
+       go-strplus.lo go-strslice.lo go-traceback.lo go-trampoline.lo \
+       go-type-complex.lo go-type-eface.lo go-type-error.lo \
+       go-type-float.lo go-type-identity.lo go-type-interface.lo \
+       go-type-string.lo go-typedesc-equal.lo go-typestring.lo \
+       go-unsafe-new.lo go-unsafe-newarray.lo go-unsafe-pointer.lo \
+       go-unwind.lo chan.lo cpuprof.lo lfstack.lo $(am__objects_1) \
+       mcache.lo mcentral.lo $(am__objects_2) mfinal.lo mfixalloc.lo \
+       mgc0.lo mheap.lo msize.lo panic.lo parfor.lo print.lo proc.lo \
        runtime.lo signal_unix.lo thread.lo yield.lo $(am__objects_3) \
        iface.lo malloc.lo map.lo mprof.lo reflect.lo runtime1.lo \
        sema.lo sigqueue.lo string.lo time.lo $(am__objects_4)
@@ -793,6 +793,7 @@ runtime_files = \
        runtime/go-map-len.c \
        runtime/go-map-range.c \
        runtime/go-matherr.c \
+       runtime/go-memcmp.c \
        runtime/go-nanotime.c \
        runtime/go-now.c \
        runtime/go-new-map.c \
@@ -2425,6 +2426,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-map-len.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-map-range.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-matherr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-memcmp.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-nanotime.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-new-map.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-new.Plo@am__quote@
@@ -2731,6 +2733,13 @@ go-matherr.lo: runtime/go-matherr.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-matherr.lo `test -f 'runtime/go-matherr.c' || echo '$(srcdir)/'`runtime/go-matherr.c
 
+go-memcmp.lo: runtime/go-memcmp.c
+@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-memcmp.lo -MD -MP -MF $(DEPDIR)/go-memcmp.Tpo -c -o go-memcmp.lo `test -f 'runtime/go-memcmp.c' || echo '$(srcdir)/'`runtime/go-memcmp.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/go-memcmp.Tpo $(DEPDIR)/go-memcmp.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='runtime/go-memcmp.c' object='go-memcmp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-memcmp.lo `test -f 'runtime/go-memcmp.c' || echo '$(srcdir)/'`runtime/go-memcmp.c
+
 go-nanotime.lo: runtime/go-nanotime.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-nanotime.lo -MD -MP -MF $(DEPDIR)/go-nanotime.Tpo -c -o go-nanotime.lo `test -f 'runtime/go-nanotime.c' || echo '$(srcdir)/'`runtime/go-nanotime.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/go-nanotime.Tpo $(DEPDIR)/go-nanotime.Plo
diff --git a/libgo/runtime/go-memcmp.c b/libgo/runtime/go-memcmp.c
new file mode 100644 (file)
index 0000000..78a356b
--- /dev/null
@@ -0,0 +1,13 @@
+/* go-memcmp.c -- the go memory comparison function.
+
+   Copyright 2012 The Go Authors. All rights reserved.
+   Use of this source code is governed by a BSD-style
+   license that can be found in the LICENSE file.  */
+
+#include "runtime.h"
+
+intgo
+__go_memcmp (const void *p1, const void *p2, uintptr len)
+{
+  return __builtin_memcmp (p1, p2, len);
+}