• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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