Home | History | Annotate | Download | only in src
      1 //===- subzero/src/IceTargetLowering.def - Target X-macros ------*- 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 defines certain platform independent patterns for lowering target
     11 // instructions, in the form of x-macros.
     12 //
     13 //===----------------------------------------------------------------------===//
     14 
     15 #ifndef SUBZERO_SRC_ICETARGETLOWERING_DEF
     16 #define SUBZERO_SRC_ICETARGETLOWERING_DEF
     17 
     18 // Pattern for runtime helper functions
     19 #define RUNTIME_HELPER_FUNCTIONS_TABLE                                         \
     20   /* tag ,              name */                                                \
     21   X(bitcast_16xi1_i16,  "__Sz_bitcast_16xi1_i16")                              \
     22   X(bitcast_8xi1_i8,    "__Sz_bitcast_8xi1_i8")                                \
     23   X(bitcast_i16_16xi1,  "__Sz_bitcast_i16_16xi1")                              \
     24   X(bitcast_i8_8xi1,    "__Sz_bitcast_i8_8xi1")                                \
     25   X(call_ctpop_i32,     "__popcountsi2")                                       \
     26   X(call_ctpop_i64,     "__popcountdi2")                                       \
     27   X(call_longjmp,       "longjmp")                                             \
     28   X(call_memcpy,        "memcpy")                                              \
     29   X(call_memmove,       "memmove")                                             \
     30   X(call_memset,        "memset")                                              \
     31   X(call_read_tp,       "__nacl_read_tp")                                      \
     32   X(call_setjmp,        "setjmp")                                              \
     33   X(fptosi_f32_i64,     "__Sz_fptosi_f32_i64")                                 \
     34   X(fptosi_f64_i64,     "__Sz_fptosi_f64_i64")                                 \
     35   X(fptoui_4xi32_f32,   "__Sz_fptoui_4xi32_f32")                               \
     36   X(fptoui_f32_i32,     "__Sz_fptoui_f32_i32")                                 \
     37   X(fptoui_f32_i64,     "__Sz_fptoui_f32_i64")                                 \
     38   X(fptoui_f64_i32,     "__Sz_fptoui_f64_i32")                                 \
     39   X(fptoui_f64_i64,     "__Sz_fptoui_f64_i64")                                 \
     40   X(frem_f32,           "fmodf")                                               \
     41   X(frem_f64,           "fmod")                                                \
     42   X(sdiv_i32,           "__divsi3")                                            \
     43   X(sdiv_i64,           "__divdi3")                                            \
     44   X(sitofp_i64_f32,     "__Sz_sitofp_i64_f32")                                 \
     45   X(sitofp_i64_f64,     "__Sz_sitofp_i64_f64")                                 \
     46   X(srem_i32,           "__modsi3")                                            \
     47   X(srem_i64,           "__moddi3")                                            \
     48   X(udiv_i32,           "__udivsi3")                                           \
     49   X(udiv_i64,           "__udivdi3")                                           \
     50   X(uitofp_4xi32_4xf32, "__Sz_uitofp_4xi32_4xf32")                             \
     51   X(uitofp_i32_f32,     "__Sz_uitofp_i32_f32")                                 \
     52   X(uitofp_i32_f64,     "__Sz_uitofp_i32_f64")                                 \
     53   X(uitofp_i64_f32,     "__Sz_uitofp_i64_f32")                                 \
     54   X(uitofp_i64_f64,     "__Sz_uitofp_i64_f64")                                 \
     55   X(urem_i32,           "__umodsi3")                                           \
     56   X(urem_i64,           "__umoddi3")
     57 //#define X(Tag, Name)
     58 
     59 #endif // SUBZERO_SRC_ICETARGETLOWERING_DEF
     60