Index: runtime/szrt.c |
diff --git a/runtime/szrt.c b/runtime/szrt.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..908c20e84a3b455aba3323370340bd109bc57807 |
--- /dev/null |
+++ b/runtime/szrt.c |
@@ -0,0 +1,77 @@ |
+//===- subzero/runtime/szrt.c - Subzero runtime source ----------*- C++ -*-===// |
+// |
+// The Subzero Code Generator |
+// |
+// This file is distributed under the University of Illinois Open Source |
+// License. See LICENSE.TXT for details. |
+// |
+//===----------------------------------------------------------------------===// |
+// |
+// This file implements the runtime helper routines that are needed by |
+// Subzero. This needs to be compiled by some non-Subzero compiler. |
+// |
+//===----------------------------------------------------------------------===// |
+ |
+#include <stdint.h> |
+#include <stdlib.h> |
+ |
+void ice_unreachable(void) { |
+ abort(); |
+} |
+ |
+uint32_t cvtftoui32(float value) { |
+ return (uint32_t) value; |
+} |
+ |
+uint32_t cvtdtoui32(double value) { |
+ return (uint32_t) value; |
+} |
+ |
+int64_t cvtftosi64(float value) { |
+ return (int64_t) value; |
+} |
+ |
+int64_t cvtdtosi64(double value) { |
+ return (int64_t) value; |
+} |
+ |
+uint64_t cvtftoui64(float value) { |
+ return (uint64_t) value; |
+} |
+ |
+uint64_t cvtdtoui64(double value) { |
+ return (uint64_t) value; |
+} |
+ |
+float cvtui32tof(uint32_t value) { |
+ return (float) value; |
+} |
+ |
+float cvtsi64tof(int64_t value) { |
+ return (float) value; |
+} |
+ |
+float cvtui64tof(uint64_t value) { |
+ return (float) value; |
+} |
+ |
+double cvtui32tod(uint32_t value) { |
+ return (double) value; |
+} |
+ |
+double cvtsi64tod(int64_t value) { |
+ return (double) value; |
+} |
+ |
+double cvtui64tod(uint64_t value) { |
+ return (double) value; |
+} |
+ |
+/* TODO(stichnot): |
+ Sz_fptoui_v4f32 |
+ Sz_uitofp_v4i32 |
+ Sz_bitcast_v8i1_to_i8 |
+ Sz_bitcast_v16i1_to_i16 |
+ Sz_bitcast_i8_to_v8i1 |
+ Sz_bitcast_i16_to_v16i1 |
+*/ |