aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/ia32
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ia32')
-rw-r--r--runtime/ia32/i64_dtos.S60
-rw-r--r--runtime/ia32/i64_dtou.S88
-rw-r--r--runtime/ia32/i64_sar.S60
-rw-r--r--runtime/ia32/i64_sdiv.S74
-rw-r--r--runtime/ia32/i64_shl.S59
-rw-r--r--runtime/ia32/i64_shr.S59
-rw-r--r--runtime/ia32/i64_smod.S70
-rw-r--r--runtime/ia32/i64_smulh.S94
-rw-r--r--runtime/ia32/i64_stod.S49
-rw-r--r--runtime/ia32/i64_stof.S49
-rw-r--r--runtime/ia32/i64_udiv.S52
-rw-r--r--runtime/ia32/i64_udivmod.S104
-rw-r--r--runtime/ia32/i64_umod.S51
-rw-r--r--runtime/ia32/i64_umulh.S74
-rw-r--r--runtime/ia32/i64_utod.S55
-rw-r--r--runtime/ia32/i64_utof.S55
-rw-r--r--runtime/ia32/sysdeps.h75
-rw-r--r--runtime/ia32/vararg.S81
18 files changed, 0 insertions, 1209 deletions
diff --git a/runtime/ia32/i64_dtos.S b/runtime/ia32/i64_dtos.S
deleted file mode 100644
index 3cc381bf..00000000
--- a/runtime/ia32/i64_dtos.S
+++ /dev/null
@@ -1,60 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Conversion float -> signed long
-
-FUNCTION(__i64_dtos)
- subl $4, %esp
- // Change rounding mode to "round towards zero"
- fnstcw 0(%esp)
- movw 0(%esp), %ax
- movb $12, %ah
- movw %ax, 2(%esp)
- fldcw 2(%esp)
- // Convert
- fldl 8(%esp)
- fistpll 8(%esp)
- // Restore rounding mode
- fldcw 0(%esp)
- // Load result in edx:eax
- movl 8(%esp), %eax
- movl 12(%esp), %edx
- addl $4, %esp
- ret
-ENDFUNCTION(__i64_dtos)
-
diff --git a/runtime/ia32/i64_dtou.S b/runtime/ia32/i64_dtou.S
deleted file mode 100644
index 4903f847..00000000
--- a/runtime/ia32/i64_dtou.S
+++ /dev/null
@@ -1,88 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Conversion float -> unsigned long
-
-FUNCTION(__i64_dtou)
- subl $4, %esp
- // Compare argument with 2^63
- fldl 8(%esp)
- flds LC1
- fucomp
- fnstsw %ax
- sahf
- jbe 1f // branch if not (ARG < 2^63)
- // Argument < 2^63: convert as is
- // Change rounding mode to "round towards zero"
- fnstcw 0(%esp)
- movw 0(%esp), %ax
- movb $12, %ah
- movw %ax, 2(%esp)
- fldcw 2(%esp)
- // Convert
- fistpll 8(%esp)
- movl 8(%esp), %eax
- movl 12(%esp), %edx
- // Restore rounding mode
- fldcw 0(%esp)
- addl $4, %esp
- ret
- // Argument > 2^63: offset ARG by -2^63, then convert, then offset RES by 2^63
-1: fsubs LC1
- // Change rounding mode to "round towards zero"
- fnstcw 0(%esp)
- movw 0(%esp), %ax
- movb $12, %ah
- movw %ax, 2(%esp)
- fldcw 2(%esp)
- // Convert
- fistpll 8(%esp)
- movl 8(%esp), %eax
- movl 12(%esp), %edx
- // Offset result by 2^63
- addl $0x80000000, %edx
- // Restore rounding mode
- fldcw 0(%esp)
- addl $4, %esp
- ret
-
- .p2align 2
-LC1: .long 0x5f000000 // 2^63 in single precision
-
-ENDFUNCTION(__i64_dtou)
- \ No newline at end of file
diff --git a/runtime/ia32/i64_sar.S b/runtime/ia32/i64_sar.S
deleted file mode 100644
index cf2233b1..00000000
--- a/runtime/ia32/i64_sar.S
+++ /dev/null
@@ -1,60 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Shift right signed
-
-// Note: IA32 shift instructions treat their amount (in %cl) modulo 32
-
-FUNCTION(__i64_sar)
- movl 12(%esp), %ecx // ecx = shift amount, treated mod 64
- testb $32, %cl
- jne 1f
- // shift amount < 32
- movl 4(%esp), %eax
- movl 8(%esp), %edx
- shrdl %cl, %edx, %eax // eax = low(XH:XL >> amount)
- sarl %cl, %edx // edx = XH >> amount (signed)
- ret
- // shift amount >= 32
-1: movl 8(%esp), %eax
- movl %eax, %edx
- sarl %cl, %eax // eax = XH >> (amount - 32)
- sarl $31, %edx // edx = sign of X
- ret
-ENDFUNCTION(__i64_sar)
-
diff --git a/runtime/ia32/i64_sdiv.S b/runtime/ia32/i64_sdiv.S
deleted file mode 100644
index f6551c7d..00000000
--- a/runtime/ia32/i64_sdiv.S
+++ /dev/null
@@ -1,74 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Signed division
-
-FUNCTION(__i64_sdiv)
- pushl %ebp
- pushl %esi
- pushl %edi
- movl 20(%esp), %esi // esi = NH
- movl %esi, %ebp // save sign of N in ebp
- testl %esi, %esi
- jge 1f // if N < 0,
- negl 16(%esp) // N = -N
- adcl $0, %esi
- negl %esi
- movl %esi, 20(%esp)
-1: movl 28(%esp), %esi // esi = DH
- xorl %esi, %ebp // sign of result in ebp
- testl %esi, %esi
- jge 2f // if D < 0,
- negl 24(%esp) // D = -D
- adcl $0, %esi
- negl %esi
- movl %esi, 28(%esp)
-2: call GLOB(__i64_udivmod)
- testl %ebp, %ebp // apply sign to result
- jge 3f
- negl %esi
- adcl $0, %edi
- negl %edi
-3: movl %esi, %eax
- movl %edi, %edx
- popl %edi
- popl %esi
- popl %ebp
- ret
-ENDFUNCTION(__i64_sdiv)
-
diff --git a/runtime/ia32/i64_shl.S b/runtime/ia32/i64_shl.S
deleted file mode 100644
index 1fabebce..00000000
--- a/runtime/ia32/i64_shl.S
+++ /dev/null
@@ -1,59 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Shift left
-
-// Note: IA32 shift instructions treat their amount (in %cl) modulo 32
-
-FUNCTION(__i64_shl)
- movl 12(%esp), %ecx // ecx = shift amount, treated mod 64
- testb $32, %cl
- jne 1f
- // shift amount < 32
- movl 4(%esp), %eax
- movl 8(%esp), %edx
- shldl %cl, %eax, %edx // edx = high(XH:XL << amount)
- shll %cl, %eax // eax = XL << amount
- ret
- // shift amount >= 32
-1: movl 4(%esp), %edx
- shll %cl, %edx // edx = XL << (amount - 32)
- xorl %eax, %eax // eax = 0
- ret
-ENDFUNCTION(__i64_shl)
-
diff --git a/runtime/ia32/i64_shr.S b/runtime/ia32/i64_shr.S
deleted file mode 100644
index 34196f09..00000000
--- a/runtime/ia32/i64_shr.S
+++ /dev/null
@@ -1,59 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Shift right unsigned
-
-// Note: IA32 shift instructions treat their amount (in %cl) modulo 32
-
-FUNCTION(__i64_shr)
- movl 12(%esp), %ecx // ecx = shift amount, treated mod 64
- testb $32, %cl
- jne 1f
- // shift amount < 32
- movl 4(%esp), %eax
- movl 8(%esp), %edx
- shrdl %cl, %edx, %eax // eax = low(XH:XL >> amount)
- shrl %cl, %edx // edx = XH >> amount
- ret
- // shift amount >= 32
-1: movl 8(%esp), %eax
- shrl %cl, %eax // eax = XH >> (amount - 32)
- xorl %edx, %edx // edx = 0
- ret
-ENDFUNCTION(__i64_shr)
-
diff --git a/runtime/ia32/i64_smod.S b/runtime/ia32/i64_smod.S
deleted file mode 100644
index 28f47ad4..00000000
--- a/runtime/ia32/i64_smod.S
+++ /dev/null
@@ -1,70 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Signed remainder
-
-FUNCTION(__i64_smod)
- pushl %ebp
- pushl %esi
- pushl %edi
- movl 20(%esp), %esi // esi = NH
- movl %esi, %ebp // save sign of result in ebp
- testl %esi, %esi
- jge 1f // if N < 0,
- negl 16(%esp) // N = -N
- adcl $0, %esi
- negl %esi
- movl %esi, 20(%esp)
-1: movl 28(%esp), %esi // esi = DH
- testl %esi, %esi
- jge 2f // if D < 0,
- negl 24(%esp) // D = -D
- adcl $0, %esi
- negl %esi
- movl %esi, 28(%esp)
-2: call GLOB(__i64_udivmod)
- testl %ebp, %ebp // apply sign to result
- jge 3f
- negl %eax
- adcl $0, %edx
- negl %edx
-3: popl %edi
- popl %esi
- popl %ebp
- ret
-ENDFUNCTION(__i64_smod)
diff --git a/runtime/ia32/i64_smulh.S b/runtime/ia32/i64_smulh.S
deleted file mode 100644
index cc0f0167..00000000
--- a/runtime/ia32/i64_smulh.S
+++ /dev/null
@@ -1,94 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris
-//
-// Copyright (c) 2016 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Multiply-high signed
-
-#define XL 12(%esp)
-#define XH 16(%esp)
-#define YL 20(%esp)
-#define YH 24(%esp)
-
-// Hacker's Delight section 8.3:
-// - compute high 64 bits of the unsigned product X * Y (see i64_umulh.S)
-// - subtract X if Y < 0
-// - subtract Y if X < 0
-
-FUNCTION(__i64_smulh)
- pushl %esi
- pushl %edi
- movl XL, %eax
- mull YL // EDX:EAX = 64-bit product XL.YL
- movl %edx, %ecx
- xorl %esi, %esi
- xorl %edi, %edi // EDI:ESI:ECX accumulatesbits 127:32 of result
- movl XH, %eax
- mull YL // EDX:EAX = 64-bit product XH.YL
- addl %eax, %ecx
- adcl %edx, %esi
- adcl $0, %edi
- movl YH, %eax
- mull XL // EDX:EAX = 64-bit product YH.XL
- addl %eax, %ecx
- adcl %edx, %esi
- adcl $0, %edi
- movl XH, %eax
- mull YH // EDX:EAX = 64-bit product XH.YH
- addl %eax, %esi
- adcl %edx, %edi
-// Here, EDI:ESI is the high 64 bits of the unsigned product X.Y
- xorl %eax, %eax
- xorl %edx, %edx
- cmpl $0, XH
- cmovl YL, %eax
- cmovl YH, %edx // EDX:EAX = Y if X < 0, = 0 if X >= 0
- subl %eax, %esi
- sbbl %edx, %edi // EDI:ESI -= Y if X < 0
- xorl %eax, %eax
- xorl %edx, %edx
- cmpl $0, YH
- cmovl XL, %eax
- cmovl XH, %edx // EDX:EAX = X if Y < 0, = 0 if Y >= 0
- subl %eax, %esi
- sbbl %edx, %edi // EDI:ESI -= X if Y < 0
-// Now EDI:ESI contains the high 64 bits of the signed product X.Y
- movl %esi, %eax
- movl %edi, %edx
- popl %edi
- popl %esi
- ret
-ENDFUNCTION(__i64_smulh)
diff --git a/runtime/ia32/i64_stod.S b/runtime/ia32/i64_stod.S
deleted file mode 100644
index d020e2fc..00000000
--- a/runtime/ia32/i64_stod.S
+++ /dev/null
@@ -1,49 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Conversion signed long -> double-precision float
-
-FUNCTION(__i64_stod)
- fildll 4(%esp)
- ret
- // The result is in extended precision (80 bits) and therefore
- // exact (64 bits of mantissa). It will be rounded to double
- // precision by the caller, when transferring the result
- // to an XMM register or a 64-bit stack slot.
-ENDFUNCTION(__i64_stod)
-
diff --git a/runtime/ia32/i64_stof.S b/runtime/ia32/i64_stof.S
deleted file mode 100644
index 25b1d4f7..00000000
--- a/runtime/ia32/i64_stof.S
+++ /dev/null
@@ -1,49 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Conversion signed long -> single-precision float
-
-FUNCTION(__i64_stof)
- fildll 4(%esp)
- // The TOS is in extended precision and therefore exact.
- // Force rounding to single precision
- fstps 4(%esp)
- flds 4(%esp)
- ret
-ENDFUNCTION(__i64_stof)
-
diff --git a/runtime/ia32/i64_udiv.S b/runtime/ia32/i64_udiv.S
deleted file mode 100644
index 75305433..00000000
--- a/runtime/ia32/i64_udiv.S
+++ /dev/null
@@ -1,52 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Unsigned division
-
-FUNCTION(__i64_udiv)
- pushl %ebp
- pushl %esi
- pushl %edi
- call GLOB(__i64_udivmod)
- movl %esi, %eax
- movl %edi, %edx
- popl %edi
- popl %esi
- popl %ebp
- ret
-ENDFUNCTION(__i64_udiv)
diff --git a/runtime/ia32/i64_udivmod.S b/runtime/ia32/i64_udivmod.S
deleted file mode 100644
index dccfc286..00000000
--- a/runtime/ia32/i64_udivmod.S
+++ /dev/null
@@ -1,104 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Division and remainder
-
-// Auxiliary function, never called directly from C code
-// Input: 20(esp), 24(esp) is dividend N
-// 28(esp), 32(esp) is divisor D
-// Output: esi:edi is quotient Q
-// eax:edx is remainder R
-// ebp is preserved
-
-FUNCTION(__i64_udivmod)
- cmpl $0, 32(%esp) // single-word divisor? (DH = 0)
- jne 1f
- // Special case 64 bits divided by 32 bits
- movl 28(%esp), %ecx // divide NH by DL
- movl 24(%esp), %eax // (will trap if D = 0)
- xorl %edx, %edx
- divl %ecx // eax = quotient, edx = remainder
- movl %eax, %edi // high word of quotient in edi
- movl 20(%esp), %eax // divide rem : NL by DL
- divl %ecx // eax = quotient, edx = remainder
- movl %eax, %esi // low word of quotient in esi */
- movl %edx, %eax // low word of remainder in eax
- xorl %edx, %edx // high word of remainder is 0, in edx
- ret
- // The general case
-1: movl 28(%esp), %ecx // esi:ecx = D
- movl 32(%esp), %esi
- movl 20(%esp), %eax // edx:eax = N
- movl 24(%esp), %edx
- // Scale D and N down, giving D' and N', until D' fits in 32 bits
-2: shrl $1, %esi // shift D' right by one
- rcrl $1, %ecx
- shrl $1, %edx // shift N' right by one
- rcrl $1, %eax
- testl %esi, %esi // repeat until D'H = 0
- jnz 2b
- // Divide N' by D' to get an approximate quotient
- divl %ecx // eax = quotient, edx = remainder
- movl %eax, %esi // save tentative quotient Q in esi
- // Check for off by one quotient
- // Compute Q * D
-3: movl 32(%esp), %ecx
- imull %esi, %ecx // ecx = Q * DH
- movl 28(%esp), %eax
- mull %esi // edx:eax = Q * DL
- add %ecx, %edx // edx:eax = Q * D
- jc 5f // overflow in addition means Q is too high
- // Compare Q * D with N, computing the remainder in the process
- movl %eax, %ecx
- movl 20(%esp), %eax
- subl %ecx, %eax
- movl %edx, %ecx
- movl 24(%esp), %edx
- sbbl %ecx, %edx // edx:eax = N - Q * D
- jnc 4f // no carry: N >= Q * D, we are fine
- decl %esi // carry: N < Q * D, adjust Q down by 1
- addl 28(%esp), %eax // and remainder up by D
- adcl 32(%esp), %edx
- // Finished
-4: xorl %edi, %edi // high half of quotient is 0
- ret
- // Special case when Q * D overflows
-5: decl %esi // adjust Q down by 1
- jmp 3b // and redo check & computation of remainder
-
-ENDFUNCTION(__i64_udivmod)
diff --git a/runtime/ia32/i64_umod.S b/runtime/ia32/i64_umod.S
deleted file mode 100644
index a019df28..00000000
--- a/runtime/ia32/i64_umod.S
+++ /dev/null
@@ -1,51 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Unsigned remainder
-
-FUNCTION(__i64_umod)
- pushl %ebp
- pushl %esi
- pushl %edi
- call GLOB(__i64_udivmod)
- popl %edi
- popl %esi
- popl %ebp
- ret
-ENDFUNCTION(__i64_umod)
-
diff --git a/runtime/ia32/i64_umulh.S b/runtime/ia32/i64_umulh.S
deleted file mode 100644
index 449a0f8b..00000000
--- a/runtime/ia32/i64_umulh.S
+++ /dev/null
@@ -1,74 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris
-//
-// Copyright (c) 2016 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Multiply-high unsigned
-
-#define XL 12(%esp)
-#define XH 16(%esp)
-#define YL 20(%esp)
-#define YH 24(%esp)
-
-// X * Y = 2^64 XH.YH + 2^32 (XH.YL + XL.YH) + XL.YL
-
-FUNCTION(__i64_umulh)
- pushl %esi
- pushl %edi
- movl XL, %eax
- mull YL // EDX:EAX = 64-bit product XL.YL
- movl %edx, %ecx
- xorl %esi, %esi
- xorl %edi, %edi // EDI:ESI:ECX accumulate bits 127:32 of result
- movl XH, %eax
- mull YL // EDX:EAX = 64-bit product XH.YL
- addl %eax, %ecx
- adcl %edx, %esi
- adcl $0, %edi
- movl YH, %eax
- mull XL // EDX:EAX = 64-bit product YH.XL
- addl %eax, %ecx
- adcl %edx, %esi
- adcl $0, %edi
- movl XH, %eax
- mull YH // EDX:EAX = 64-bit product XH.YH
- addl %esi, %eax
- adcl %edi, %edx
- popl %edi
- popl %esi
- ret
-ENDFUNCTION(__i64_umulh)
-
diff --git a/runtime/ia32/i64_utod.S b/runtime/ia32/i64_utod.S
deleted file mode 100644
index 428a3b94..00000000
--- a/runtime/ia32/i64_utod.S
+++ /dev/null
@@ -1,55 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Conversion unsigned long -> double-precision float
-
-FUNCTION(__i64_utod)
- fildll 4(%esp) // convert as if signed
- cmpl $0, 8(%esp) // is argument >= 2^63?
- jns 1f
- fadds LC1 // adjust by 2^64
-1: ret
- // The result is in extended precision (80 bits) and therefore
- // exact (64 bits of mantissa). It will be rounded to double
- // precision by the caller, when transferring the result
- // to an XMM register or a 64-bit stack slot.
-
- .p2align 2
-LC1: .long 0x5f800000 // 2^64 in single precision
-
-ENDFUNCTION(__i64_utod)
diff --git a/runtime/ia32/i64_utof.S b/runtime/ia32/i64_utof.S
deleted file mode 100644
index 0b58f48b..00000000
--- a/runtime/ia32/i64_utof.S
+++ /dev/null
@@ -1,55 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for 64-bit integer arithmetic. IA32 version.
-
-#include "sysdeps.h"
-
-// Conversion unsigned long -> single-precision float
-
-FUNCTION(__i64_utof)
- fildll 4(%esp) // convert as if signed
- cmpl $0, 8(%esp) // is argument >= 2^63?
- jns 1f
- fadds LC1 // adjust by 2^64
- // The TOS is in extended precision and therefore exact.
- // Force rounding to single precision
-1: fstps 4(%esp)
- flds 4(%esp)
- ret
-
- .p2align 2
-LC1: .long 0x5f800000 // 2^64 in single precision
-
-ENDFUNCTION(__i64_utof)
diff --git a/runtime/ia32/sysdeps.h b/runtime/ia32/sysdeps.h
deleted file mode 100644
index 9d957a88..00000000
--- a/runtime/ia32/sysdeps.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// System dependencies
-
-#if defined(SYS_linux) || defined(SYS_bsd)
-
-#define GLOB(x) x
-#define FUNCTION(f) \
- .text; \
- .globl f; \
- .align 16; \
-f:
-
-#define ENDFUNCTION(f) \
- .type f, @function; .size f, . - f
-
-#endif
-
-#if defined(SYS_macosx)
-
-#define GLOB(x) _##x
-#define FUNCTION(f) \
- .text; \
- .globl _##f; \
- .align 4; \
-_##f:
-
-#define ENDFUNCTION(f)
-
-#endif
-
-#if defined(SYS_cygwin)
-
-#define GLOB(x) _##x
-#define FUNCTION(f) \
- .text; \
- .globl _##f; \
- .align 16; \
-_##f:
-
-#define ENDFUNCTION(f)
-
-#endif
diff --git a/runtime/ia32/vararg.S b/runtime/ia32/vararg.S
deleted file mode 100644
index 78666c70..00000000
--- a/runtime/ia32/vararg.S
+++ /dev/null
@@ -1,81 +0,0 @@
-// *****************************************************************
-//
-// The Compcert verified compiler
-//
-// Xavier Leroy, INRIA Paris-Rocquencourt
-//
-// Copyright (c) 2013 Institut National de Recherche en Informatique et
-// en Automatique.
-//
-// 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.
-// * Neither the name of the <organization> nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "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 <COPYRIGHT
-// HOLDER> 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.
-//
-// *********************************************************************
-
-// Helper functions for variadic functions <stdarg.h>. IA32 version
-
-#include "sysdeps.h"
-
-// typedef void * va_list;
-// unsigned int __compcert_va_int32(va_list * ap);
-// unsigned long long __compcert_va_int64(va_list * ap);
-// double __compcert_va_float64(va_list * ap);
-
-FUNCTION(__compcert_va_int32)
- movl 4(%esp), %ecx // %ecx = ap parameter
- movl 0(%ecx), %edx // %edx = current argument pointer
- movl 0(%edx), %eax // load the int32 value there
- addl $4, %edx // increment argument pointer by 4
- movl %edx, 0(%ecx)
- ret
-ENDFUNCTION(__compcert_va_int32)
-
-FUNCTION(__compcert_va_int64)
- movl 4(%esp), %ecx // %ecx = ap parameter
- movl 0(%ecx), %edx // %edx = current argument pointer
- movl 0(%edx), %eax // load the int64 value there
- movl 4(%edx), %edx
- addl $8, 0(%ecx) // increment argument pointer by 8
- ret
-ENDFUNCTION(__compcert_va_int64)
-
-FUNCTION(__compcert_va_float64)
- movl 4(%esp), %ecx // %ecx = ap parameter
- movl 0(%ecx), %edx // %edx = current argument pointer
- fldl 0(%edx) // load the float64 value there
- addl $8, %edx // increment argument pointer by 8
- movl %edx, 0(%ecx)
- ret
-ENDFUNCTION(__compcert_va_float64)
-
-FUNCTION(__compcert_va_composite)
- movl 4(%esp), %ecx // %ecx = ap parameter
- movl 8(%esp), %edx // %edx = size of composite in bytes
- movl 0(%ecx), %eax // %eax = current argument pointer
- leal 3(%eax, %edx), %edx // advance by size
- andl $0xfffffffc, %edx // and round up to multiple of 4
- movl %edx, 0(%ecx) // update argument pointer
- ret
-ENDFUNCTION(__compcert_va_composite)
-
-