From 5d3ad3b123b7c121d7a6eac27fb13016171e27bc Mon Sep 17 00:00:00 2001 From: Igor Venevtsev Date: Thu, 31 Mar 2016 12:12:00 +0300 Subject: Add Intel MCU target Intel MCU System V ABI are incompartible with i386 System V ABI: o Minimum instruction set is Intel Pentium ISA minus x87 instructions o No x87 or vector registers o First three args are passed in %eax, %edx and %ecx o Full specification available here: https://github.com/hjl-tools/x86-psABI/wiki/iamcu-psABI-0.7.pdf newlib/ * configure.host: Add new ix86-*-elfiamcu target newlib/libc/include/ * setjmp.h: Change _JBLEN for Intel MCU target newlib/libc/machine/i386/ * memchr.S: (memchr) Target-specific size-optimized version * memcmp.S: (memcmp) Likewise * memcpy.S: (memcpy) Likewise * memmove.S: (memmove) Likewise * memset.S: (memset) Likewise * setjmp.S: (setjmp) Likewise * strchr.S: (strchr) Likewise * strlen.S: (strlen) Likewise newlib/libc/stdlib/ * srtold.c: (__flt_rounds) Disable for Intel MCU --- newlib/libc/stdlib/strtold.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'newlib/libc/stdlib/strtold.c') diff --git a/newlib/libc/stdlib/strtold.c b/newlib/libc/stdlib/strtold.c index a6d415db6..1128b747a 100644 --- a/newlib/libc/stdlib/strtold.c +++ b/newlib/libc/stdlib/strtold.c @@ -35,7 +35,8 @@ POSSIBILITY OF SUCH DAMAGE. #ifdef _HAVE_LONG_DOUBLE -#if defined (__x86_64__) || defined (__i386__) +/* Intel MCU has no x87 floating point unit */ +#if (defined (__x86_64__) || defined (__i386__)) && !defined (__iamcu__) static const int map[] = { 1, /* round to nearest */ 3, /* round to zero */ -- cgit v1.2.3