资源简介
TCC(Tiny C Compiler)0.9.26源码 VS版工程
已经实现VS2008和VS2013 打开即用
可编译 可调试
建议使用VS2008编译
代码片段和文件信息
/*
* 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
相关资源
- TCC(Tiny C Compiler)0.9.26源码 VS版工程
- B2C电子商务网站系统源码
- 灰鸽子源码
- 数据结构课程设计 迷宫求解 源码
- Delphi生成条码(EAN13/128)单元源码
- 使用ajax实现电子商务网站中的购物车
- 易语言远程桌面V1.0源码
- 订单管理系统 sshstring+struts+hibernate源
- H264 verilog 源码
- 八皇后问题,vc源码。小游戏。
- linux下QT程序读写配置文件小程序
- ECC加密算法实现C源码
- openFire 4.0.0 源码 导入 eclipse
- VS2010求值MD5的代码
- 博文配套源码
- 在线表白墙源码,恋爱的上
- 飞机大战微信小程序源码
- 综合组网实验(eNSP)源码
- 基于蚁群算法的机器人路径规划源码
- linux串口编程直接make编译
- 熊猫烧香源码E
- 无双小师妹手游源码+服务端源码+文档
- net.jcip.annotations源码
- 基于STM32的VL53L0X程序源码
- STM32F103C8T6核心板之配套程序源码 -
- 弹弹堂G源码
- qt刻度尺控件
- 推箱子源代码——QT的便捷
- Unity3D地下守护神ARPG开发三部曲视频教
- labview检测系统程序源码
评论
共有 条评论