Alien-TinyCC
view release on metacpan or search on metacpan
src/Changelog view on Meta::CPAN
217218219220221222223224225226227228229230231232233234235236237- 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
205720582059206020612062206320642065206620672068206920702071207220732074207520762077
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
210121022103210421052106210721082109211021112112211321142115211621172118211921202121
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
331332333334335336337338339340341342343344345346347348349350351
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
114811491150115111521153115411551156115711581159116011611162116311641165116611671168
}
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
746747748749750751752753754755756757758759760761762763764765@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 )