summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure10
-rw-r--r--runtime/Makefile2
-rw-r--r--runtime/arm/int64.s2
3 files changed, 12 insertions, 2 deletions
diff --git a/configure b/configure
index 5a1b4ba..0e69384 100755
--- a/configure
+++ b/configure
@@ -71,6 +71,7 @@ case "$target" in
cc="${toolprefix}gcc"
cprepro="${toolprefix}gcc -U__GNUC__ -E"
casm="${toolprefix}gcc -c"
+ casmruntime="${toolprefix}gcc -c -Wa,-mregnames"
clinker="${toolprefix}gcc"
libmath="-lm"
cchecklink=true;;
@@ -141,6 +142,8 @@ case "$target" in
exit 2;;
esac
+if test -z "$casmruntime"; then casmruntime="$casm"; fi
+
# Additional packages needed for cchecklink
if $cchecklink; then
@@ -169,6 +172,7 @@ SYSTEM=$system
CC=$cc
CPREPRO=$cprepro
CASM=$casm
+CASMRUNTIME=$casmruntime
CLINKER=$clinker
LIBMATH=$libmath
HAS_RUNTIME_LIB=$has_runtime_lib
@@ -203,7 +207,7 @@ VARIANT=
# SYSTEM=cygwin
SYSTEM=
-# C compiler for compiling library files
+# C compiler for compiling runtime library files and some tests
CC=gcc
# Preprocessor for .c files
@@ -212,6 +216,9 @@ CPREPRO=gcc -U__GNUC__ -E
# Assembler for assembling .s files
CASM=gcc -c
+# Assembler for assembling runtime library files
+CASMRUNTIME=gcc -c
+
# Linker
CLINKER=gcc
@@ -246,6 +253,7 @@ CompCert configuration:
C compiler.................... $cc
C preprocessor................ $cprepro
Assembler..................... $casm
+ Assembler for runtime lib..... $casmruntime
Linker........................ $clinker
Math library.................. $libmath
Binaries installed in......... $bindirexp
diff --git a/runtime/Makefile b/runtime/Makefile
index 5550e6b..5ed24af 100644
--- a/runtime/Makefile
+++ b/runtime/Makefile
@@ -12,7 +12,7 @@ $(LIB): $(OBJS)
ar rcs $(LIB) $(OBJS)
%.o: $(ARCH)/%.s
- $(CASM) $^
+ $(CASMRUNTIME) $^
clean::
rm -f *.o $(LIB)
diff --git a/runtime/arm/int64.s b/runtime/arm/int64.s
index 58ac024..5f01679 100644
--- a/runtime/arm/int64.s
+++ b/runtime/arm/int64.s
@@ -201,6 +201,8 @@ __i64_umod:
.type __i64_umod, %function
.size __i64_umod, . - __i64_umod
+@@@ Signed division
+
.global __i64_sdiv
__i64_sdiv:
push {r4, r5, r6, r7, r8, r10, lr}