blob: f465571e539d893c2d072523f5eca1a752230ab8 [file] [log] [blame]
Karl Schimpf20070e82016-03-17 13:30:13 -07001//===- 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