You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.5 KiB
33 lines
1.5 KiB
//===- subzero/crosstest/test_cast.h - Test prototypes ----------*- C++ -*-===//
|
|
//
|
|
// The Subzero Code Generator
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file declares the function prototypes used for crosstesting cast
|
|
// operations.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// The driver and the test program may be compiled by different
|
|
// versions of clang, with different standard libraries that have
|
|
// different definitions of int8_t. Specifically, int8_t may be
|
|
// typedef'd as either 'char' or 'signed char', which mangle to
|
|
// different strings. Avoid int8_t and use an explicit myint8_t.
|
|
typedef signed char myint8_t;
|
|
|
|
template <typename FromType, typename ToType> ToType cast(FromType a);
|
|
template <typename FromType, typename ToType> ToType castBits(FromType a);
|
|
|
|
// Targets like MIPS32, pass floating-point arguments in general purpose
|
|
// registers when the first argument is passed in a general purpose register.
|
|
// Overloaded cast and castBits functions take two extra integer argument to
|
|
// check proper conversion of floating-point to/from general purpose registers.
|
|
template <typename FromType, typename ToType>
|
|
ToType cast(int i, FromType a, int j);
|
|
template <typename FromType, typename ToType>
|
|
ToType castBits(int i, FromType a, int j);
|