Index: uspace/lib/softint/include/alias.h
===================================================================
--- uspace/lib/softint/include/alias.h	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
+++ uspace/lib/softint/include/alias.h	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2011 Petr Koupy
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup softint
+ * @{
+ */
+
+#ifndef __SOFTINT_ALIAS_H__
+#define __SOFTINT_ALIAS_H__
+
+#include <limits.h>
+
+/* A utility macro for creating aliases for type `long`. */
+
+#if LONG_MAX == LLONG_MAX
+#define ALIAS(pre, post) pre##d##post() __attribute__((alias(#pre "t" #post)))
+#else
+#define ALIAS(pre, post) pre##d##post() __attribute__((alias(#pre "s" #post)))
+#endif
+
+#endif
+
+/** @}
+ */
Index: uspace/lib/softint/include/comparison.h
===================================================================
--- uspace/lib/softint/include/comparison.h	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
+++ uspace/lib/softint/include/comparison.h	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
@@ -38,8 +38,10 @@
 
 /* Signed comparison (a < b => 0, a == b => 1, a > b => 2). */
-extern int __cmpdi2(long long, long long);
+extern int __cmpdi2(long, long);
+extern int __cmpti2(long long, long long);
 
 /* Unsigned comparison (a < b => 0, a == b => 1, a > b => 2). */
-extern int __ucmpdi2(unsigned long long, unsigned long long);
+extern int __ucmpdi2(unsigned long, unsigned long);
+extern int __ucmpti2(unsigned long long, unsigned long long);
 
 #endif
Index: uspace/lib/softint/include/division.h
===================================================================
--- uspace/lib/softint/include/division.h	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
+++ uspace/lib/softint/include/division.h	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
@@ -38,23 +38,37 @@
 
 extern int __divsi3(int, int);
-extern long long __divdi3(long long, long long);
+extern long __divdi3(long, long);
+extern long long __divti3(long long, long long);
 
 extern unsigned int __udivsi3(unsigned int, unsigned int);
-extern unsigned long long __udivdi3(unsigned long long, unsigned long long);
+extern unsigned long __udivdi3(unsigned long, unsigned long);
+extern unsigned long long __udivti3(unsigned long long, unsigned long long);
 
 extern int __modsi3(int, int);
-extern long long __moddi3(long long, long long);
+extern long __moddi3(long, long);
+extern long long __modti3(long long, long long);
 
 extern unsigned int __umodsi3(unsigned int, unsigned int);
-extern unsigned long long __umoddi3(unsigned long long, unsigned long long);
+extern unsigned long __umoddi3(unsigned long, unsigned long);
+extern unsigned long long __umodti3(unsigned long long, unsigned long long);
 
 extern int __divmodsi3(int, int, int *);
+extern long __divmoddi3(long, long, long *);
+extern long long __divmodti3(long long, long long, long long *);
+
 extern unsigned int __udivmodsi3(unsigned int, unsigned int, unsigned int *);
+extern unsigned long __udivmoddi3(unsigned long, unsigned long,
+    unsigned long *);
+extern unsigned long long __udivmodti3(unsigned long long, unsigned long long,
+    unsigned long long *);
 
-extern long long __divmoddi3(long long, long long, long long *);
-extern long long __divmoddi4(long long, long long, long long *);
-extern unsigned long long __udivmoddi3(unsigned long long, unsigned long long,
-    unsigned long long *);
-extern unsigned long long __udivmoddi4(unsigned long long, unsigned long long,
+extern int __divmodsi4(int, int, int *);
+extern long __divmoddi4(long, long, long *);
+extern long long __divmodti4(long long, long long, long long *);
+
+extern unsigned int __udivmodsi4(unsigned int, unsigned int, unsigned int *);
+extern unsigned long __udivmoddi4(unsigned long, unsigned long,
+    unsigned long *);
+extern unsigned long long __udivmodti4(unsigned long long, unsigned long long,
     unsigned long long *);
 
Index: uspace/lib/softint/include/multiplication.h
===================================================================
--- uspace/lib/softint/include/multiplication.h	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
+++ uspace/lib/softint/include/multiplication.h	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
@@ -38,5 +38,6 @@
 
 /* 64 bit multiplication */
-extern long long __muldi3(long long, long long);
+extern long __muldi3(long, long);
+extern long long __multi3(long long, long long);
 
 #endif
Index: uspace/lib/softint/include/shift.h
===================================================================
--- uspace/lib/softint/include/shift.h	(revision 9abe2e5367e0d71b259840713b8cf79d80d97fc6)
+++ uspace/lib/softint/include/shift.h	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
@@ -38,11 +38,14 @@
 
 /* Arithmetic/logical shift left. */
-extern long long __ashldi3(long long, int);
+extern long __ashldi3(long, int);
+extern long long __ashlti3(long long, int);
 
 /* Arithmetic shift right. */
-extern long long __ashrdi3(long long, int);
+extern long __ashrdi3(long, int);
+extern long long __ashrti3(long long, int);
 
 /* Logical shift right. */
-extern long long __lshrdi3(long long, int);
+extern long __lshrdi3(long, int);
+extern long long __lshrti3(long long, int);
 
 
