Alien-TinyCC

 view release on metacpan or  search on metacpan

src/Changelog  view on Meta::CPAN

217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
- fixed array declaration in old style function parameters
- support casts in static structure initializations
- added various __xxx[__] keywords for GCC compatibility
- ignore __extension__ GCC in an expression or in a type (still not perfect)
- added '? :' GCC extension support
 
version 0.9.15:
 
- compilation fixes for glibc 2.2, gcc 2.95.3 and gcc 3.2.
- FreeBSD compile fixes. Makefile patches still missing (Carl Drougge).
- fixed file type guessing if '.' is in the path.
- fixed tcc_compile_string()
- add a dummy page in ELF files to fix RX/RW accesses (pageexec at
  freemail dot hu).
 
version 0.9.14:
 
- added #warning. error message if invalid preprocessing directive.
- added CType structure to ease typing (faster parse).
- suppressed secondary hash tables (faster parse).
- rewrote parser by optimizing common cases (faster parse).

src/c67-gen.c  view on Meta::CPAN

2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
    C67_MVKH(C67_A0, t);        //r=reg to load,  constant
    C67_IREG_B_REG(0, C67_CREG_ZERO, C67_A0);   // [!R] B.S2x  A0
    C67_NOP(5);
    return ind1;
}
 
/* generate a jump to a fixed address */
void gjmp_addr(int a)
{
    Sym *sym;
    // I guess this routine is used for relative short
    // local jumps, for now just handle it as the general
    // case
 
    // define a label that will be relocated
 
    sym = get_sym_ref(&char_pointer_type, cur_text_section, a, 0);
    greloc(cur_text_section, sym, ind, R_C60LO16);
    greloc(cur_text_section, sym, ind + 4, R_C60HI16);
 
    gjmp(0);                    // place a zero there later the symbol will be added to it

src/c67-gen.c  view on Meta::CPAN

2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
    C67_IREG_B_REG(C67_invert_test ^ inv, C67_compare_reg, C67_A0); // [!R] B.S2x  A0
    C67_NOP(5);
    t = ind1;               //return where we need to patch
 
} else if (v == VT_JMP || v == VT_JMPI) {
    /* && or || optimization */
    if ((v & 1) == inv) {
        /* insert vtop->c jump list in t */
        p = &vtop->c.i;
 
        // I guess the idea is to traverse to the
        // null at the end of the list and store t
        // there
 
        n = *p;
        while (n != 0) {
            p = (int *) (cur_text_section->data + n);
 
            // extract 32 bit address from MVKH/MVKL
            n = ((*p >> 7) & 0xffff);
            n |= ((*(p + 1) >> 7) & 0xffff) << 16;

src/configure  view on Meta::CPAN

331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
      if test -f "/lib/ld-uClibc.so.0" ; then
        confvars="$confvars uClibc"
      fi
# gr: maybe for after the release:
#       tcc_elfinterp="$(ldd $CONFTEST | grep 'ld.*.so' | sed 's,\s*\(\S\+\).*,\1,')"
       # echo "elfinterp           $tcc_elfinterp"
 
    fi
  fi
else
  # if cross compiling, cannot launch a program, so make a static guess
  case $cpu in
    powerpc|mips|s390)  bigendian=yes;;
  esac
fi
 
cat <<EOF
Binary  directory   $bindir
TinyCC directory    $tccdir
Library directory   $libdir
Include directory   $includedir

src/libtcc.c  view on Meta::CPAN

1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
    }
 
    if (!strcmp(ext, "s")) {
        /* non preprocessed assembler */
        ret = tcc_assemble(s1, 0);
        goto the_end;
    }
#endif
 
    fd = file->fd;
    /* assume executable format: auto guess file type */
    size = read(fd, &ehdr, sizeof(ehdr));
    lseek(fd, 0, SEEK_SET);
    if (size <= 0) {
        tcc_error_noabort("could not read header");
        goto the_end;
    }
 
    if (size == sizeof(ehdr) &&
        ehdr.e_ident[0] == ELFMAG0 &&
        ehdr.e_ident[1] == ELFMAG1 &&

src/tcc-doc.texi  view on Meta::CPAN

746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
@item .string string[,...]
@item .asciz string[,...]
@item .ascii string[,...]
@end itemize
 
@section X86 Assembler
@cindex assembler
 
All X86 opcodes are supported. Only ATT syntax is supported (source
then destination operand order). If no size suffix is given, TinyCC
tries to guess it from the operand sizes.
 
Currently, MMX opcodes are supported but not SSE ones.
 
@node linker
@chapter TinyCC Linker
@cindex linker
 
@section ELF file generation
@cindex ELF



( run in 0.440 second using v1.01-cache-2.11-cpan-55f5a4728d2 )