资源简介

TCC(Tiny C Compiler)0.9.26源码 VS版工程 已经实现VS2008和VS2013 打开即用 可编译 可调试 建议使用VS2008编译 没分的同学可以去下载无分版: http://download.csdn.net/detail/shen_juntao/8414171

资源截图

代码片段和文件信息

/*
 *  ARMv4 code generator for TCC
 * 
 *  Copyright (c) 2003 Daniel Gl鯿kner
 *  Copyright (c) 2012 Thomas Preud‘homme
 *
 *  based on i386-gen.c by Fabrice Bellard
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not write to the Free Software
 * Foundation Inc. 59 Temple Place Suite 330 Boston MA  02111-1307  USA
 */

#ifdef TARGET_DEFS_ONLY

#ifdef TCC_ARM_EABI
#ifndef TCC_ARM_VFP // Avoid useless warning
#define TCC_ARM_VFP
#endif
#endif

/* number of available registers */
#ifdef TCC_ARM_VFP
#define NB_REGS            13
#else
#define NB_REGS             9
#endif

#ifndef TCC_ARM_VERSION
# define TCC_ARM_VERSION 5
#endif

/* a register can belong to several classes. The classes must be
   sorted from more general to more precise (see gv2() code which does
   assumptions on it). */
#define RC_INT     0x0001 /* generic integer register */
#define RC_FLOAT   0x0002 /* generic float register */
#define RC_R0      0x0004
#define RC_R1      0x0008 
#define RC_R2      0x0010
#define RC_R3      0x0020
#define RC_R12     0x0040
#define RC_F0      0x0080
#define RC_F1      0x0100
#define RC_F2      0x0200
#define RC_F3      0x0400
#ifdef TCC_ARM_VFP
#define RC_F4      0x0800
#define RC_F5      0x1000
#define RC_F6      0x2000
#define RC_F7      0x4000
#endif
#define RC_IRET    RC_R0  /* function return: integer register */
#define RC_LRET    RC_R1  /* function return: second integer register */
#define RC_FRET    RC_F0  /* function return: float register */

/* pretty names for the registers */
enum {
    TREG_R0 = 0
    TREG_R1
    TREG_R2
    TREG_R3
    TREG_R12
    TREG_F0
    TREG_F1
    TREG_F2
    TREG_F3
#ifdef TCC_ARM_VFP
    TREG_F4
    TREG_F5
    TREG_F6
    TREG_F7
#endif
};

#ifdef TCC_ARM_VFP
#define T2CPR(t) (((t) & VT_BTYPE) != VT_FLOAT ? 0x100 : 0)
#endif

/* return registers for function */
#define REG_IRET TREG_R0 /* single word int return register */
#define REG_LRET TREG_R1 /* second word return register (for long long) */
#define REG_FRET TREG_F0 /* float return register */

#ifdef TCC_ARM_EABI
#define TOK___divdi3 TOK___aeabi_ldivmod
#define TOK___moddi3 TOK___aeabi_ldivmod
#define TOK___udivdi3 TOK___aeabi_uldivmod
#define TOK___umoddi3 TOK___aeabi_uldivmod
#endif

/* defined if function parameters must be evaluated in reverse order */
#define INVERT_FUNC_PARAMS

/* defined if structures are passed as pointers. Otherwise structures
   are 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1910  2015-02-01 12:12  TinyCC 0.9.26\TinyCC - 2013.sln

    ..A..H.     17408  2015-02-01 12:34  TinyCC 0.9.26\TinyCC - 2013.v12.suo

     文件       5520  2015-02-01 12:17  TinyCC 0.9.26\TinyCC.DLL\TinyCC.DLL.vcproj

     文件       1385  2015-02-01 12:33  TinyCC 0.9.26\TinyCC.DLL\TinyCC.DLL.vcproj.SHEN-PC.军涛.user

     文件       5961  2015-02-01 12:19  TinyCC 0.9.26\TinyCC.DLL\TinyCC.DLL.vcxproj

     文件       2975  2015-02-01 12:12  TinyCC 0.9.26\TinyCC.DLL\TinyCC.DLL.vcxproj.filters

     文件       5557  2015-02-01 12:33  TinyCC 0.9.26\TinyCC.EXE\TinyCC.vcproj

     文件       1469  2015-02-01 12:33  TinyCC 0.9.26\TinyCC.EXE\TinyCC.vcproj.SHEN-PC.军涛.user

     文件       6070  2015-02-01 12:33  TinyCC 0.9.26\TinyCC.EXE\TinyCC.vcxproj

     文件       2895  2015-02-01 12:12  TinyCC 0.9.26\TinyCC.EXE\TinyCC.vcxproj.filters

     文件        426  2015-02-01 12:19  TinyCC 0.9.26\TinyCC.EXE\TinyCC.vcxproj.user

     文件       4951  2015-02-01 12:23  TinyCC 0.9.26\TinyCC.LIB\TinyCC.LIB.vcproj

     文件       1385  2015-02-01 12:33  TinyCC 0.9.26\TinyCC.LIB\TinyCC.LIB.vcproj.SHEN-PC.军涛.user

     文件       5213  2015-02-01 12:19  TinyCC 0.9.26\TinyCC.LIB\TinyCC.LIB.vcxproj

     文件       2895  2015-02-01 12:12  TinyCC 0.9.26\TinyCC.LIB\TinyCC.LIB.vcxproj.filters

     文件       1828  2015-02-01 11:13  TinyCC 0.9.26\TinyCC.sln

    ..A..H.     43520  2015-02-01 12:33  TinyCC 0.9.26\TinyCC.suo

     文件      47233  2015-02-01 08:40  TinyCC 0.9.26\TinyCCSrc\arm-gen.c

     文件      71343  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\c67-gen.c

     文件      22419  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\coff.h

     文件        107  2015-02-01 08:22  TinyCC 0.9.26\TinyCCSrc\config.h

     文件       1539  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\conftest.c

     文件      79489  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\elf.h

     文件      44484  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\i386-asm.c

     文件      22431  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\i386-asm.h

     文件      30575  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\i386-gen.c

     文件       3892  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\i386-tok.h

     文件      16739  2015-02-01 08:49  TinyCC 0.9.26\TinyCCSrc\il-gen.c

     文件       7612  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\il-opcodes.h

     文件      53639  2013-02-15 22:24  TinyCC 0.9.26\TinyCCSrc\libtcc.c

............此处省略136个文件信息

评论

共有 条评论