Home | History | Annotate | Download | only in crosstest
      1 //===- subzero/crosstest/test_cast.h - Test prototypes ----------*- C++ -*-===//
      2 //
      3 //                        The Subzero Code Generator
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // This file declares the function prototypes used for crosstesting cast
     11 // operations.
     12 //
     13 //===----------------------------------------------------------------------===//
     14 
     15 // The driver and the test program may be compiled by different
     16 // versions of clang, with different standard libraries that have
     17 // different definitions of int8_t.  Specifically, int8_t may be
     18 // typedef'd as either 'char' or 'signed char', which mangle to
     19 // different strings.  Avoid int8_t and use an explicit myint8_t.
     20 typedef signed char myint8_t;
     21 
     22 template <typename FromType, typename ToType> ToType cast(FromType a);
     23 template <typename FromType, typename ToType> ToType castBits(FromType a);
     24 
     25 // Targets like MIPS32, pass floating-point arguments in general purpose
     26 // registers when the first argument is passed in a general purpose register.
     27 // Overloaded cast and castBits functions take two extra integer argument to
     28 // check proper conversion of floating-point to/from general purpose registers.
     29 template <typename FromType, typename ToType>
     30 ToType cast(int i, FromType a, int j);
     31 template <typename FromType, typename ToType>
     32 ToType castBits(int i, FromType a, int j);
     33