Commit Graph

6 Commits

Author SHA1 Message Date
Igor Venevtsev 5d3ad3b123 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
2016-04-04 16:32:07 +02:00
Eric Blake 2dd1fb6ff5 Fix bug in previous patch.
* libc/machine/i386/memset.S (memset): Mask second arg correctly.
2008-05-28 14:00:39 +00:00
Jeff Johnston a6bd72a278 2008-05-26 Eric Blake <ebb9@byu.net>
Optimize the generic and x86 memset.
        * libc/string/memset.c (memset) [!__OPTIMIZE_SIZE__]:
        Pre-align pointer so unaligned stores aren't penalized.
        * libc/machine/i386/memset.S (memset): [!__OPTIMIZE_SIZE__]:
        Pre-align pointer so unaligned stores aren't penalized.  Prefer
        8-byte over 4-byte alignment.  Reduce register pressure.
2008-05-26 23:23:15 +00:00
Jeff Johnston 10501d5766 2002-12-20 Jeff Johnston <jjohnstn@redhat.com>
* libc/machine/i386/f_atan2.S: Change copyright from Cygnus
        Solutions to Red Hat Inc.
        * libc/machine/i386/f_atan2f.S: Ditto.
        * libc/machine/i386/f_exp.c: Ditto.
        * libc/machine/i386/f_expf.c: Ditto.
        * libc/machine/i386/f_frexp.S: Ditto.
        * libc/machine/i386/f_frexpf.S: Ditto.
        * libc/machine/i386/f_ldexp.S: Ditto.
        * libc/machine/i386/f_ldexpf.S: Ditto.
        * libc/machine/i386/f_log.S: Ditto.
        * libc/machine/i386/f_log10.S: Ditto.
        * libc/machine/i386/f_log10f.S: Ditto.
        * libc/machine/i386/f_logf.S: Ditto.
        * libc/machine/i386/f_pow.c: Ditto.
        * libc/machine/i386/f_powf.c: Ditto.
        * libc/machine/i386/f_tan.S: Ditto.
        * libc/machine/i386/f_tanf.S: Ditto.
        * libc/machine/i386/memchr.S: Ditto.
        * libc/machine/i386/memcmp.S: Ditto.
        * libc/machine/i386/memcpy.S: Ditto.
        * libc/machine/i386/memmove.S: Ditto.
        * libc/machine/i386/memset.S: Ditto.
        * libc/machine/i386/strchr.S: Ditto.
        * libc/machine/i386/strlen.S: Ditto.
        * libm/machine/i386/f_atan2.S: Ditto.
        * libm/machine/i386/f_atan2f.S: Ditto.
        * libm/machine/i386/f_exp.c: Ditto.
        * libm/machine/i386/f_expf.c: Ditto.
        * libm/machine/i386/f_frexp.S: Ditto.
        * libm/machine/i386/f_frexpf.S: Ditto.
        * libm/machine/i386/f_ldexp.S: Ditto.
        * libm/machine/i386/f_ldexpf.S: Ditto.
        * libm/machine/i386/f_log.S: Ditto.
        * libm/machine/i386/f_log10.S: Ditto.
        * libm/machine/i386/f_log10f.S: Ditto.
        * libm/machine/i386/f_logf.S: Ditto.
        * libm/machine/i386/f_pow.c: Ditto.
        * libm/machine/i386/f_powf.c: Ditto.
        * libm/machine/i386/f_tan.S: Ditto.
        * libm/machine/i386/f_tanf.S: Ditto.
2002-12-20 21:31:20 +00:00
Jeff Johnston ef44da427f 2000-08-27 Werner Almesberger <Werner.Almesberger@epfl.ch>
* libc/machine/i386/i386mach.h: added SOTYPE_FUNCTION to set type
        of global entry points if _I386MACH_NEED_SOTYPE_FUNCTION is defined;
        Added __CLI and __STI macros (controlled via
        _I386MACH_ALLOW_HW_INTERRUPTS macro).
        * libc/machine/i386/f_atan2.S libc/machine/i386/f_atan2f.S
        libc/machine/i386/f_frexp.S libc/machine/i386/f_frexpf.S
        libc/machine/i386/f_ldexp.S libc/machine/i386/f_ldexpf.S
        libc/machine/i386/f_log.S libc/machine/i386/f_log10.S
        libc/machine/i386/f_log10f.S libc/machine/i386/f_logf.S
        libc/machine/i386/f_tan.S libc/machine/i386/f_tanf.S
        libc/machine/i386/memchr.S libc/machine/i386/memcmp.S
        libc/machine/i386/memcpy.S libc/machine/i386/memmove.S
        libc/machine/i386/memset.S libc/machine/i386/setjmp.S
        libc/machine/i386/strchr.S libc/machine/i386/strlen.S:
        (that's libc/machine/i386/*.S) added SOTYPE_FUNCTION(symbol)
        for all global entry points.
        * libc/machine/i386/setjmp.S: removed code replicated in
        libc/machine/i386/i386mach.h and included i386mach.h instead;
        Use __CLI and __STI instead of cli and sti.
2000-08-28 17:50:06 +00:00
Christopher Faylor 8a0efa53e4 import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00