fix for: x86_64-tcc compiled by i386-tcc is wrong
commit8f6390061d4e839ad57d69ceb227e4f957b658de
authorseyko <seyko2@gmail.com>
Mon, 23 Mar 2015 16:24:55 +0000 (23 19:24 +0300)
committerseyko <seyko2@gmail.com>
Mon, 23 Mar 2015 16:24:55 +0000 (23 19:24 +0300)
tree461d3f731e0bc0f6f866823ab553edc2db86311a
parent8dbe129ab78c2d43a9c69da795436cd7a4daf820
fix for: x86_64-tcc compiled by i386-tcc is wrong
A test program (must be compiled by the above version of the tcc):

    /* Tickle a bug in TinyC on 64-bit systems:
     * the LSB of the top word or ARGP gets set
     * for no obvious reason.
     *
     * Source: a legacy language interpreter which
     * has a little stack / stack pointer for arguments.
     *
     * Output is: 0x8049620 0x10804961c
     * Should be: 0x8049620 0x804961c
     */
    #include <stdio.h>
    #define NARGS 20000
    int ARG[NARGS];
    int *ARGSPACE = ARG;
    int *ARGP = ARG - 1;
    main() { printf("%p %p\n", ARGSPACE, ARGP); }
libtcc.c
tcc.h
tccelf.c