Alien-TinyCCx

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

  
  * Updated to latest tccx work, fixing struct alignment issues and
    enum handling..

0.11  Mon, Aug 8, 2016

  [DIFFERENT BEHAVIOR]
  
  * The binary, library, and include file locations are reported based on
    the results of an actual subdirectory search, rather than by sheer
    guesswork, as used to be the case.
  
  [BUG FIXES]
  
  * BSDs were switched to use cc, but that is clang (at least on some
    BSDs) so we need to add the heinous-gnu-extensions flag.
  
  * Add patch for Mac OSX to #define _VA_LIST_T. Macs were hitting trouble
    with incompatible preprocessor definitions. If the macros and internal
    definitions had all been expanded, the definitions for variadic function
    lists would have been the same, but tcc doesn't know that.

lib/Alien/TinyCCx.pm  view on Meta::CPAN

		unless -d $dist_dir;
}
else {
	$dist_dir = File::ShareDir::dist_dir('Alien-TinyCCx');
}

############################
# Path retrieval functions #
############################

# First we need to find a number of files of interest. Rather than guess
# at these files' locations, we can perform a simple search for them
# and store the locations that we find.
my %files_to_find = (
	bin => 'tcc',
	lib => 'libtcc.',
	inc => 'libtcc.h'
);
if ($^O =~ /MSWin/) {
	$files_to_find{bin} .= '.exe';
	$files_to_find{lib} .= 'dll';

src/Changelog  view on Meta::CPAN

- 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

    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


	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 */

	    // I guess the idea is to traverse to the
	    // null at the end of the list and store t
	    // there

	    n = vtop->c.i;
	    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

	fi
      fi

      if test -f "/lib/ld-uClibc.so.0" ; then
	confvars="$confvars uClibc"
      fi

    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

# a final configuration tuning
$cc -v --help > cc_help.txt 2>&1
W_OPTIONS="declaration-after-statement"
for i in $W_OPTIONS; do
    O_PRESENT="$(grep -- -W$i cc_help.txt)"

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

@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.309 second using v1.01-cache-2.11-cpan-702932259ff )