+2016-01-20 Richard Henderson <rth@redhat.com>
+
+ PR bootstrap/69343
+ PR bootstrap/69339
+ PR tree-opt/68964
+ Revert:
+ * tree.c (tm_define_builtin): New.
+ (find_tm_vector_type): New.
+ (build_tm_vector_builtins): New.
+ (build_common_builtin_nodes): Call it.
+
2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
* doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
set_builtin_decl (code, decl, true);
}
-/* A subroutine of build_tm_vector_builtins. Define a builtin with
- all of the appropriate attributes. */
-static void
-tm_define_builtin (const char *name, tree type, built_in_function code,
- tree decl_attrs, tree type_attrs)
-{
- tree decl = add_builtin_function (name, type, code, BUILT_IN_NORMAL,
- name + strlen ("__builtin_"), decl_attrs);
- decl_attributes (&TREE_TYPE (decl), type_attrs, ATTR_FLAG_BUILT_IN);
- set_builtin_decl (code, decl, true);
-}
-
-/* A subroutine of build_tm_vector_builtins. Find a supported vector
- type VECTOR_BITS wide with inner mode ELEM_MODE. */
-static tree
-find_tm_vector_type (unsigned vector_bits, machine_mode elem_mode)
-{
- unsigned elem_bits = GET_MODE_BITSIZE (elem_mode);
- unsigned nunits = vector_bits / elem_bits;
-
- gcc_assert (elem_bits * nunits == vector_bits);
-
- machine_mode vector_mode = mode_for_vector (elem_mode, nunits);
- if (!VECTOR_MODE_P (vector_mode)
- || !targetm.vector_mode_supported_p (vector_mode))
- return NULL_TREE;
-
- tree innertype = lang_hooks.types.type_for_mode (elem_mode, 0);
- return build_vector_type_for_mode (innertype, vector_mode);
-}
-
-/* A subroutine of build_common_builtin_nodes. Define TM builtins for
- vector types. This is done after the target hook, so that the target
- has a chance to override these. */
-static void
-build_tm_vector_builtins (void)
-{
- tree vtype, pvtype, ftype, decl;
- tree attrs_load, attrs_type_load;
- tree attrs_store, attrs_type_store;
- tree attrs_log, attrs_type_log;
-
- /* Do nothing if TM is turned off, either with switch or
- not enabled in the language. */
- if (!flag_tm || !builtin_decl_explicit_p (BUILT_IN_TM_LOAD_1))
- return;
-
- /* Use whatever attributes a normal TM load has. */
- decl = builtin_decl_explicit (BUILT_IN_TM_LOAD_1);
- attrs_load = DECL_ATTRIBUTES (decl);
- attrs_type_load = TYPE_ATTRIBUTES (TREE_TYPE (decl));
- /* Use whatever attributes a normal TM store has. */
- decl = builtin_decl_explicit (BUILT_IN_TM_STORE_1);
- attrs_store = DECL_ATTRIBUTES (decl);
- attrs_type_store = TYPE_ATTRIBUTES (TREE_TYPE (decl));
- /* Use whatever attributes a normal TM log has. */
- decl = builtin_decl_explicit (BUILT_IN_TM_LOG);
- attrs_log = DECL_ATTRIBUTES (decl);
- attrs_type_log = TYPE_ATTRIBUTES (TREE_TYPE (decl));
-
- /* By default, 64 bit vectors go through the long long helpers. */
-
- /* If a 128-bit vector is supported, declare those builtins. */
- if (!builtin_decl_explicit_p (BUILT_IN_TM_STORE_M128)
- && ((vtype = find_tm_vector_type (128, SImode))
- || (vtype = find_tm_vector_type (128, SFmode))))
- {
- pvtype = build_pointer_type (vtype);
-
- ftype = build_function_type_list (void_type_node, pvtype, vtype, NULL);
- tm_define_builtin ("__builtin__ITM_WM128", ftype,
- BUILT_IN_TM_STORE_M128,
- attrs_store, attrs_type_store);
- tm_define_builtin ("__builtin__ITM_WaRM128", ftype,
- BUILT_IN_TM_STORE_WAR_M128,
- attrs_store, attrs_type_store);
- tm_define_builtin ("__builtin__ITM_WaWM128", ftype,
- BUILT_IN_TM_STORE_WAW_M128,
- attrs_store, attrs_type_store);
-
- ftype = build_function_type_list (vtype, pvtype, NULL);
- tm_define_builtin ("__builtin__ITM_RM128", ftype,
- BUILT_IN_TM_LOAD_M128,
- attrs_load, attrs_type_load);
- tm_define_builtin ("__builtin__ITM_RaRM128", ftype,
- BUILT_IN_TM_LOAD_RAR_M128,
- attrs_load, attrs_type_load);
- tm_define_builtin ("__builtin__ITM_RaWM128", ftype,
- BUILT_IN_TM_LOAD_RAW_M128,
- attrs_load, attrs_type_load);
- tm_define_builtin ("__builtin__ITM_RfWM128", ftype,
- BUILT_IN_TM_LOAD_RFW_M128,
- attrs_load, attrs_type_load);
-
- ftype = build_function_type_list (void_type_node, pvtype, NULL);
- tm_define_builtin ("__builtin__ITM_LM128", ftype,
- BUILT_IN_TM_LOG_M128, attrs_log, attrs_type_log);
- }
-
- /* If a 256-bit vector is supported, declare those builtins. */
- if (!builtin_decl_explicit_p (BUILT_IN_TM_STORE_M256)
- && ((vtype = find_tm_vector_type (256, SImode))
- || (vtype = find_tm_vector_type (256, SFmode))))
- {
- pvtype = build_pointer_type (vtype);
-
- ftype = build_function_type_list (void_type_node, pvtype, vtype, NULL);
- tm_define_builtin ("__builtin__ITM_WM256", ftype,
- BUILT_IN_TM_STORE_M256,
- attrs_store, attrs_type_store);
- tm_define_builtin ("__builtin__ITM_WaRM256", ftype,
- BUILT_IN_TM_STORE_WAR_M256,
- attrs_store, attrs_type_store);
- tm_define_builtin ("__builtin__ITM_WaWM256", ftype,
- BUILT_IN_TM_STORE_WAW_M256,
- attrs_store, attrs_type_store);
-
- ftype = build_function_type_list (vtype, pvtype, NULL);
- tm_define_builtin ("__builtin__ITM_RM256", ftype,
- BUILT_IN_TM_LOAD_M256,
- attrs_load, attrs_type_load);
- tm_define_builtin ("__builtin__ITM_RaRM256", ftype,
- BUILT_IN_TM_LOAD_RAR_M256,
- attrs_load, attrs_type_load);
- tm_define_builtin ("__builtin__ITM_RaWM256", ftype,
- BUILT_IN_TM_LOAD_RAW_M256,
- attrs_load, attrs_type_load);
- tm_define_builtin ("__builtin__ITM_RfWM256", ftype,
- BUILT_IN_TM_LOAD_RFW_M256,
- attrs_load, attrs_type_load);
-
- ftype = build_function_type_list (void_type_node, pvtype, NULL);
- tm_define_builtin ("__builtin__ITM_LM256", ftype,
- BUILT_IN_TM_LOG_M256, attrs_log, attrs_type_log);
- }
-}
-
/* Call this function after instantiating all builtins that the language
front end cares about. This will build the rest of the builtins
and internal functions that are relied upon by the tree optimizers and
}
}
- build_tm_vector_builtins ();
init_internal_fns ();
}
+2016-01-19 Richard Henderson <rth@redhat.com>
+
+ PR bootstrap/69343
+ PR bootstrap/69339
+ Revert:
+ 2016-01-13 Richard Henderson <rth@redhat.com>
+
+ * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
+ (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
+ (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
+ (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
+ * configure.ac (ARCH_AARCH64): New conditional.
+ (ARCH_PPC, ARCH_S390): Likewise.
+ * Makefile.in, configure: Rebuild.
+
+ * libitm.h (_ITM_TYPE_M128): Always define.
+ * vect64.cc: Split ...
+ * vect128.cc: ... out of...
+ * config/x86/x86_sse.cc: ... here.
+ * config/arm/neon.cc: New file.
+
2016-01-19 Torvald Riegel <triegel@redhat.com>
* local_type_traits: Remove file.
query.cc retry.cc rwlock.cc useraction.cc util.cc \
sjlj.S tls.cc method-serial.cc method-gl.cc method-ml.cc
-if ARCH_AARCH64
-libitm_la_SOURCES += vect128.cc
-endif
if ARCH_ARM
-libitm_la_SOURCES += hwcap.cc neon.cc
-endif
-if ARCH_PPC
-libitm_la_SOURCES += vect128.cc
-vect128.lo : override CXXFLAGS += -maltivec
-endif
-if ARCH_S390
-libitm_la_SOURCES += vect128.cc
-vect128.lo : override CXXFLAGS += -march=z13
+libitm_la_SOURCES += hwcap.cc
endif
if ARCH_X86
-libitm_la_SOURCES += vect64.cc vect128.cc x86_avx.cc
-vect64.lo : override CXXFLAGS += -msse
-vect128.lo : override CXXFLAGS += -msse
+libitm_la_SOURCES += x86_sse.cc x86_avx.cc
+# Make sure -msse is appended at the end.
+x86_sse.lo : override CXXFLAGS += -msse
endif
if ARCH_X86_AVX
+# Make sure -mavx is appended at the end.
x86_avx.lo : override CXXFLAGS += -mavx
endif
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
-@ARCH_AARCH64_TRUE@am__append_1 = vect128.cc
-@ARCH_ARM_TRUE@am__append_2 = hwcap.cc neon.cc
-@ARCH_PPC_TRUE@am__append_3 = vect128.cc
-@ARCH_S390_TRUE@am__append_4 = vect128.cc
-@ARCH_X86_TRUE@am__append_5 = vect64.cc vect128.cc x86_avx.cc
-@ARCH_FUTEX_TRUE@am__append_6 = futex.cc
+@ARCH_ARM_TRUE@am__append_1 = hwcap.cc
+@ARCH_X86_TRUE@am__append_2 = x86_sse.cc x86_avx.cc
+@ARCH_FUTEX_TRUE@am__append_3 = futex.cc
subdir = .
DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
"$(DESTDIR)$(toolexeclibdir)"
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
libitm_la_LIBADD =
-@ARCH_AARCH64_TRUE@am__objects_1 = vect128.lo
-@ARCH_ARM_TRUE@am__objects_2 = hwcap.lo neon.lo
-@ARCH_PPC_TRUE@am__objects_3 = vect128.lo
-@ARCH_S390_TRUE@am__objects_4 = vect128.lo
-@ARCH_X86_TRUE@am__objects_5 = vect64.lo vect128.lo x86_avx.lo
-@ARCH_FUTEX_TRUE@am__objects_6 = futex.lo
+@ARCH_ARM_TRUE@am__objects_1 = hwcap.lo
+@ARCH_X86_TRUE@am__objects_2 = x86_sse.lo x86_avx.lo
+@ARCH_FUTEX_TRUE@am__objects_3 = futex.lo
am_libitm_la_OBJECTS = aatree.lo alloc.lo alloc_c.lo alloc_cpp.lo \
barrier.lo beginend.lo clone.lo eh_cpp.lo local.lo query.lo \
retry.lo rwlock.lo useraction.lo util.lo sjlj.lo tls.lo \
method-serial.lo method-gl.lo method-ml.lo $(am__objects_1) \
- $(am__objects_2) $(am__objects_3) $(am__objects_4) \
- $(am__objects_5) $(am__objects_6)
+ $(am__objects_2) $(am__objects_3)
libitm_la_OBJECTS = $(am_libitm_la_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/../depcomp
barrier.cc beginend.cc clone.cc eh_cpp.cc local.cc query.cc \
retry.cc rwlock.cc useraction.cc util.cc sjlj.S tls.cc \
method-serial.cc method-gl.cc method-ml.cc $(am__append_1) \
- $(am__append_2) $(am__append_3) $(am__append_4) \
- $(am__append_5) $(am__append_6)
+ $(am__append_2) $(am__append_3)
# Automake Documentation:
# If your package has Texinfo files in many directories, you can use the
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/method-gl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/method-ml.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/method-serial.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/neon.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/query.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/retry.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rwlock.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/useraction.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vect128.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vect64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86_avx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x86_sse.Plo@am__quote@
.S.o:
@am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ `echo $(libitm_la_LIBADD) | \
@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1)
-@ARCH_PPC_TRUE@vect128.lo : override CXXFLAGS += -maltivec
-@ARCH_S390_TRUE@vect128.lo : override CXXFLAGS += -march=z13
-@ARCH_X86_TRUE@vect64.lo : override CXXFLAGS += -msse
-@ARCH_X86_TRUE@vect128.lo : override CXXFLAGS += -msse
+# Make sure -msse is appended at the end.
+@ARCH_X86_TRUE@x86_sse.lo : override CXXFLAGS += -msse
+# Make sure -mavx is appended at the end.
@ARCH_X86_AVX_TRUE@x86_avx.lo : override CXXFLAGS += -mavx
all-local: $(STAMP_GENINSRC)
+++ /dev/null
-#ifdef __ARM_NEON
-#include <vect128.cc>
-#endif
// ??? Use memcpy for now, until we have figured out how to best instantiate
// these loads/stores.
+CREATE_DISPATCH_FUNCTIONS_T_MEMCPY(M64, GTM::abi_disp()->, )
CREATE_DISPATCH_FUNCTIONS_T_MEMCPY(M128, GTM::abi_disp()->, )
+void ITM_REGPARM
+_ITM_LM64 (const _ITM_TYPE_M64 *ptr)
+{
+ GTM::GTM_LB (ptr, sizeof (*ptr));
+}
+
void ITM_REGPARM
_ITM_LM128 (const _ITM_TYPE_M128 *ptr)
{
ARCH_X86_AVX_TRUE
ARCH_X86_FALSE
ARCH_X86_TRUE
-ARCH_S390_FALSE
-ARCH_S390_TRUE
-ARCH_PPC_FALSE
-ARCH_PPC_TRUE
ARCH_ARM_FALSE
ARCH_ARM_TRUE
-ARCH_AARCH64_FALSE
-ARCH_AARCH64_TRUE
link_itm
XLDFLAGS
XCFLAGS
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11799 "configure"
+#line 11793 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11905 "configure"
+#line 11899 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
else
- export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
fi
;;
pw32*)
fi
- if test "$ARCH" = aarch64; then
- ARCH_AARCH64_TRUE=
- ARCH_AARCH64_FALSE='#'
-else
- ARCH_AARCH64_TRUE='#'
- ARCH_AARCH64_FALSE=
-fi
-
if test "$ARCH" = arm; then
ARCH_ARM_TRUE=
ARCH_ARM_FALSE='#'
ARCH_ARM_FALSE=
fi
- if test "$ARCH" = powerpc -o "$ARCH" = powerpc64; then
- ARCH_PPC_TRUE=
- ARCH_PPC_FALSE='#'
-else
- ARCH_PPC_TRUE='#'
- ARCH_PPC_FALSE=
-fi
-
- if test "$ARCH" = s390 -o "$ARCH" = s390x; then
- ARCH_S390_TRUE=
- ARCH_S390_FALSE='#'
-else
- ARCH_S390_TRUE='#'
- ARCH_S390_FALSE=
-fi
-
if test "$ARCH" = x86; then
ARCH_X86_TRUE=
ARCH_X86_FALSE='#'
as_fn_error "conditional \"LIBITM_BUILD_VERSIONED_SHLIB_SUN\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${ARCH_AARCH64_TRUE}" && test -z "${ARCH_AARCH64_FALSE}"; then
- as_fn_error "conditional \"ARCH_AARCH64\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${ARCH_ARM_TRUE}" && test -z "${ARCH_ARM_FALSE}"; then
as_fn_error "conditional \"ARCH_ARM\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${ARCH_PPC_TRUE}" && test -z "${ARCH_PPC_FALSE}"; then
- as_fn_error "conditional \"ARCH_PPC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ARCH_S390_TRUE}" && test -z "${ARCH_S390_FALSE}"; then
- as_fn_error "conditional \"ARCH_S390\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${ARCH_X86_TRUE}" && test -z "${ARCH_X86_FALSE}"; then
as_fn_error "conditional \"ARCH_X86\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
AC_SUBST(link_itm)
-AM_CONDITIONAL([ARCH_AARCH64], [test "$ARCH" = aarch64])
AM_CONDITIONAL([ARCH_ARM], [test "$ARCH" = arm])
-AM_CONDITIONAL([ARCH_PPC], [test "$ARCH" = powerpc -o "$ARCH" = powerpc64])
-AM_CONDITIONAL([ARCH_S390], [test "$ARCH" = s390 -o "$ARCH" = s390x])
AM_CONDITIONAL([ARCH_X86], [test "$ARCH" = x86])
AM_CONDITIONAL([ARCH_X86_AVX], [test "$libitm_cv_as_avx" = yes])
AM_CONDITIONAL([ARCH_FUTEX], [test $enable_linux_futex = yes])
ITM_BARRIERS(M256)
ITM_LOG(M256)
# endif
-#else
- typedef int _ITM_TYPE_M128 __attribute__((vector_size(16), may_alias));
- ITM_BARRIERS(M128)
- ITM_LOG(M128)
-#endif
+#endif /* i386 */
#undef ITM_BARRIERS
#undef ITM_LOG
+++ /dev/null
-/* Copyright (C) 2009-2016 Free Software Foundation, Inc.
- Contributed by Richard Henderson <rth@redhat.com>.
-
- This file is part of the GNU Transactional Memory Library (libitm).
-
- Libitm is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- Libitm is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include "libitm_i.h"
-#include "dispatch.h"
-
-// ??? Use memcpy for now, until we have figured out how to best instantiate
-// these loads/stores.
-CREATE_DISPATCH_FUNCTIONS_T_MEMCPY(M64, GTM::abi_disp()->, )
-
-void ITM_REGPARM
-_ITM_LM64 (const _ITM_TYPE_M64 *ptr)
-{
- GTM::GTM_LB (ptr, sizeof (*ptr));
-}