亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tm-pyr.h

?? 這是完整的gcc源代碼
?? H
?? 第 1 頁 / 共 4 頁
字號:
/* Definitions of target machine for GNU compiler for Pyramid 90 Series.   Copyright (C) 1989 Free Software Foundation, Inc.This file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 1, or (at your option)any later version.GNU CC is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING.  If not, write tothe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  *//* * If you're going to change this, and you haven't already, * you should get and read * 	``OSx Operating System Porting Guide'', *	  publication number 4100-0066-A *	  Revision A *	  Pyramid Technology Corporation. * * or whatever the most recent version is.  In any case, page and * section number references given herein refer to this document. * *  The instruction table for gdb lists the available insns and *  the valid addressing modes. * *  Any other information on the Pyramid architecture is proprietary *  and hard to get. (Pyramid cc -S and adb are also useful.) * *//*** Run-time compilation parameters selecting different hardware subsets. ***//* Names to predefine in the preprocessor for this target machine.  */#define CPP_PREDEFINES "-Dpyr -Dunix"/* Print subsidiary information on the compiler version in use.  */#define TARGET_VERSION fprintf (stderr, " (pyr)");extern int target_flags;/* Nonzero if compiling code that Unix assembler can assemble.  */#define TARGET_UNIX_ASM (target_flags & 1)/* Use the indexed addressing modes (were once not known to work).   Leaving this in means we can disable them and so find out what   they win us.  */#define TARGET_INDEX (target_flags & 2)/* Implement stdarg in the same fashion used on all other machines.  */#define TARGET_GNU_STDARG   (target_flags & 4)/* Compile using RETD to pop off the args.   This will not work unless you use prototypes at least   for all functions that can take varying numbers of args.   This contravenes the Pyramid calling convention, so we don't   do it yet.  */#define TARGET_RETD (target_flags & 8)/* Macros used in the machine description to test the flags.  *//* Macro to define tables used to set the flags.   This is a list in braces of pairs in braces,   each pair being { "NAME", VALUE }   where VALUE is the bits to set or minus the bits to clear.   An empty string NAME is used to identify the default VALUE.   -mgnu will be useful if we ever have GAS on a pyramid.   -mindex was used to enable indexing when I didn't understand    how pyramid's indexing modes worked.  */#define TARGET_SWITCHES  \  { {"unix", 1},  		\    {"gnu", -1},  		\    {"index", 2},		\    {"noindex", -2},		\    {"gnu-stdarg", 4},		\    {"nognu-stdarg", -4},	\    {"retd", 8},		\    {"no-retd", -8},		\    { "", TARGET_DEFAULT}}/* Default target_flags if no switches specified.   (equivalent to "-munix -mindex -mgnu-stdarg")  */#ifndef TARGET_DEFAULT#define TARGET_DEFAULT (1 + 2 + 4)#endif/*** Target machine storage layout ***//* Define this if most significant bit is lowest numbered   in instructions that operate on numbered bit-fields.   This is not true on the pyramid.  *//* #define BITS_BIG_ENDIAN *//* Define this if most significant byte of a word is the lowest numbered.  */#define BYTES_BIG_ENDIAN/* Define this if most significant word of a multiword number is numbered.  */#define WORDS_BIG_ENDIAN/* Number of bits in an addressible storage unit */#define BITS_PER_UNIT 8/* Width in bits of a "word", which is the contents of a machine register.   Note that this is not necessarily the width of data type `int';   if using 16-bit ints on a 68000, this would still be 32.   But on a machine with 16-bit registers, this would be 16.  */#define BITS_PER_WORD 32/* Width of a word, in units (bytes).  */#define UNITS_PER_WORD 4/* Width in bits of a pointer.   See also the macro `Pmode' defined below.  */#define POINTER_SIZE 32/* Allocation boundary (in *bits*) for storing pointers in memory.  */#define POINTER_BOUNDARY 32/* Allocation boundary (in *bits*) for storing arguments in argument list.  */#define PARM_BOUNDARY 32/* Boundary (in *bits*) on which stack pointer should be aligned.  */#define STACK_BOUNDARY 32/* Allocation boundary (in *bits*) for the code of a function.  */#define FUNCTION_BOUNDARY 32/* Alignment of field after `int : 0' in a structure.  */#define EMPTY_FIELD_BOUNDARY 32/* No data type wants to be aligned rounder than this.  */#define BIGGEST_ALIGNMENT 32/* Specified types of bitfields affect alignment of those fields   and of the structure as a whole.  */#define PCC_BITFIELD_TYPE_MATTERS 1/* Make strings word-aligned so dhrystone will run faster.   Pyramid documentation says the best alignment is to align   on the size of a cache line, which is 16 bytes.   Newer pyrs have single insns that do strcmp() and strcpy(), so this   may not actually win anything.   *//* Try to increase aligment.  *//* Use kludge to maintain alignment for pyramid. See   DATA_SECTION_ASM_OP below.  */#define CONSTANT_ALIGNMENT(CODE, TYPEALIGN) \  ((CODE) == STRING_CST ? (TYPEALIGN) * 4 : (TYPEALIGN))/* Define this if move instructions will actually fail to work   when given unaligned data.  */#define STRICT_ALIGNMENT/*** Standard register usage.  ***//* Number of actual hardware registers.   The hardware registers are assigned numbers for the compiler   from 0 to just below FIRST_PSEUDO_REGISTER.   All registers that the compiler knows about must be given numbers,   even those that are not normally considered general registers.  *//* Nota Bene:   Pyramids have 64 addressable 32-bit registers, arranged as four   groups: global, parameter, local, and temporary.     The sixteen global registers are fairly conventional; the last   four are overloaded with a PSW, frame pointer, and stack pointer.   The non-dedicated global registers used to be reserved for Pyramid   operating systems, and still have cryptic and undocumented uses for   certain library calls.  We avoid them.   The parameter, local, and temporary registers provide _register_   _windowing_. Each procedure call has its own set of these 48   registers, which constitute its call frame. (These frames are   allocated on a stack separate from the conventional data stack,   called the _control_ _stack_.   facility hereby the temporary registers of frame n   become the parameter registers of frame n+1, viz.:                                 0         15 0         15 0         15                                +------------+------------+------------+                                |            |            |            |                                +------------+------------+------------+                                   Parameter     Local       Temporary                                      ^                                      |                                      v        0         15 0         15 0         15      +------------+------------+------------+      |            |            |            |      +------------+------------+------------+         Parameter     Local       Temporary   Temporary registers are used for parameter passing, and are not   preserved across calls.  TR14 and TR15 are reserved and should   never be used; since they are used to save the next frame's PC   and stack pointer, their contents may be destroyed at any time by   an interrupt. */#define PYR_GREG(n) (n)#define PYR_PREG(n) (16+(n))#define PYR_LREG(n) (32+(n))#define PYR_TREG(n) (48+(n))#define FIRST_PSEUDO_REGISTER 64/* 1 for registers that have pervasive standard uses   and are not available for the register allocator.   On the pyramid, these are LOGPSW, CFP, SP, PC, but we leave the other   global regs alone as well.  */#define FIXED_REGISTERS \  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,	\   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,	\   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,	\   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1}/* 1 for registers not available across function calls.   These must include the FIXED_REGISTERS and also any   registers that can be used without being saved.   The latter must include the registers where values are returned   and the register where structure-value addresses are passed.   Aside from that, you can include as many other registers as you like.  */#define CALL_USED_REGISTERS \  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,	\   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,	\   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 	\   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}/* #define DEFAULT_CALLER_SAVES *//* Return number of consecutive hard regs needed starting at reg REGNO   to hold something of mode MODE.   This is ordinarily the length in words of a value of mode MODE   but can be less for certain modes in special long registers.   On the pyramid, all registers are one word long.  */#define HARD_REGNO_NREGS(REGNO, MODE)   \ ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)/* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.   On the pyramid, all registers can hold all modes.  *//* -->FIXME: this is not the case for 64-bit quantities in tr11/12 through   --> TR14/15.  This should be fixed,  but to do it correctly, we also   --> need to fix MODES_TIEABLE_P. Yuk.  We ignore this, since GCC should   --> do the "right" thing due to FIXED_REGISTERS. */#define HARD_REGNO_MODE_OK(REGNO, MODE) 1/* Value is 1 if it is a good idea to tie two pseudo registers   when one has mode MODE1 and one has mode MODE2.   If HARD_REGNO_MODE_OK could produce different values for MODE1 and MODE2,   for any hard reg, then this must be 0 for correct output.  */#define MODES_TIEABLE_P(MODE1, MODE2) 1/* Specify the registers used for certain standard purposes.   The values of these macros are register numbers.  *//* Pyramid pc is overloaded on global register 15.  */#define PC_REGNUM PYR_GREG(15)/* Register to use for pushing function arguments.   --> on Pyramids, the data stack pointer. */#define STACK_POINTER_REGNUM PYR_GREG(14)/* Base register for access to local variables of the function.   Pyramid uses CFP (GR13) as both frame pointer and argument pointer. */#define FRAME_POINTER_REGNUM 13 /* PYR_GREG(13) *//* Value should be nonzero if functions must have frame pointers.   Zero means the frame pointer need not be set up (and parms   may be accessed via the stack pointer) in functions that seem suitable.   This is computed in `reload', in reload1.c.   Setting this to 1 can't break anything.  Since the Pyramid has   register windows, I don't know if defining this to be zero can   win anything.  It could changed later, if it wins. */#define FRAME_POINTER_REQUIRED 1/* Base register for access to arguments of the function.  */#define ARG_POINTER_REGNUM 13 /* PYR_GREG(13) *//* Register in which static-chain is passed to a function.  *//* If needed, Pyramid says to use temporary register 12. */#define STATIC_CHAIN_REGNUM PYR_TREG(12)/* Register in which address to store a structure value   is passed to a function.   On a Pyramid, this is temporary register 0 (TR0).   */#define STRUCT_VALUE_REGNUM PYR_TREG(0)#define STRUCT_VALUE_INCOMING_REGNUM PYR_PREG(0)/* Define the classes of registers for register constraints in the   machine description.  Also define ranges of constants.   One of the classes must always be named ALL_REGS and include all hard regs.   If there is more than one class, another class must be named NO_REGS   and contain no registers.   The name GENERAL_REGS must be the name of a class (or an alias for   another name such as ALL_REGS).  This is the class of registers   that is allowed by "g" or "r" in a register constraint.   Also, registers outside this class are allocated only when   instructions express preferences for them.   The classes must be numbered in nondecreasing order; that is,   a larger-numbered class must never be contained completely   in a smaller-numbered class.   For any two classes, it is very desirable that there be another   class that represents their union.  *//* The pyramid has only one kind of registers, so NO_REGS and ALL_REGS   are the only classes.  */enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };#define N_REG_CLASSES (int) LIM_REG_CLASSES/* Since GENERAL_REGS is the same class as ALL_REGS,   don't give it a different class number; just make it an alias.  */#define GENERAL_REGS ALL_REGS/* Give names of register classes as strings for dump file.   */#define REG_CLASS_NAMES \ {"NO_REGS", "ALL_REGS" }/* Define which registers fit in which classes.   This is an initializer for a vector of HARD_REG_SET   of length N_REG_CLASSES.  */#define REG_CLASS_CONTENTS {{0,0}, {0xffffffff,0xffffffff}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品影院| 亚洲日本一区二区| 日韩综合在线视频| 欧美欧美午夜aⅴ在线观看| 亚洲精品免费视频| 欧美日韩精品综合在线| 亚洲伊人伊色伊影伊综合网| 欧美午夜寂寞影院| 日韩电影在线看| 亚洲精品一区二区三区四区高清 | 亚洲精品高清在线| 91浏览器在线视频| 五月婷婷激情综合| 日韩欧美国产1| 欧美精选在线播放| 麻豆精品一区二区三区| 久久精品综合网| 在线一区二区三区四区| 日本最新不卡在线| 亚洲国产高清在线| 欧美色中文字幕| 国产一区在线视频| 一区二区三区视频在线看| 91精品国产色综合久久不卡蜜臀 | 欧美精三区欧美精三区| 韩国精品在线观看| 亚洲日本一区二区| 日韩欧美亚洲另类制服综合在线| 国产精品一区二区在线观看网站 | 在线不卡的av| 国产乱淫av一区二区三区| 亚洲欧美在线观看| 日韩欧美亚洲一区二区| 91小视频在线免费看| 青青草精品视频| 亚洲人成在线观看一区二区| 制服丝袜亚洲网站| 成人av在线播放网址| 麻豆91在线播放免费| 亚洲素人一区二区| 久久久久久一二三区| 欧美三级视频在线| 成熟亚洲日本毛茸茸凸凹| 婷婷开心激情综合| 亚洲男人的天堂网| 久久精品视频网| 91精品视频网| 在线亚洲精品福利网址导航| 国产精品亚洲第一区在线暖暖韩国| 亚洲一二三四区| 国产精品国产三级国产aⅴ原创| 日韩一区二区在线看片| 91福利视频在线| 成人av电影在线网| 国产露脸91国语对白| 日韩高清在线不卡| 亚洲综合一二三区| 亚洲精品乱码久久久久久| 久久久久九九视频| 日韩免费一区二区| 欧美日韩国产a| 日本高清不卡在线观看| 成人一道本在线| 另类调教123区| 午夜久久电影网| 亚洲高清免费在线| 亚洲精品欧美二区三区中文字幕| 国产精品久久久久久久久免费丝袜 | 亚洲欧洲日韩av| 久久久久久久久一| 精品成人免费观看| 精品sm捆绑视频| 亚洲小说欧美激情另类| 一级中文字幕一区二区| 亚洲欧美另类久久久精品2019| 欧美激情综合在线| 中文字幕的久久| 国产日产精品一区| 久久久久国产免费免费| 久久免费午夜影院| www国产精品av| 日本一区二区三区视频视频| xfplay精品久久| 久久久久88色偷偷免费| 国产亚洲福利社区一区| 国产丝袜美腿一区二区三区| 国产午夜亚洲精品不卡| 欧美激情一区在线| 亚洲天堂成人网| 亚洲一区视频在线观看视频| 亚洲aaa精品| 免费观看成人鲁鲁鲁鲁鲁视频| 久久精品免费看| 国产精品91一区二区| av电影天堂一区二区在线| 91原创在线视频| 色诱亚洲精品久久久久久| 欧美日韩国产成人在线免费| 7777精品伊人久久久大香线蕉超级流畅 | 午夜在线电影亚洲一区| 丝袜国产日韩另类美女| 免费av成人在线| 国产在线精品一区二区三区不卡| 成人免费视频一区| 色婷婷狠狠综合| 欧美日韩精品欧美日韩精品| 欧美一区二区高清| 亚洲国产精品99久久久久久久久| 亚洲人亚洲人成电影网站色| 亚洲电影一区二区| 久久99精品久久久| 91在线视频网址| 欧美一区二区在线免费观看| 国产欧美日韩久久| 亚洲国产成人91porn| 韩国av一区二区| 色综合久久久久综合体| 91精品国产综合久久香蕉麻豆 | 欧美一级搡bbbb搡bbbb| 国产午夜精品理论片a级大结局| 亚洲精品网站在线观看| 久久精品国产99| 91国偷自产一区二区三区观看| 日韩视频永久免费| 一区二区三区四区乱视频| 久久国产综合精品| 一本色道久久综合亚洲91| 精品久久99ma| 亚洲精品免费在线| 国产成人精品三级| 欧美精品在线观看一区二区| 中文字幕 久热精品 视频在线| 天天综合网天天综合色| 国产高清不卡二三区| 欧美色图免费看| 中文字幕不卡在线观看| 日韩在线一区二区三区| av电影一区二区| 亚洲精品在线一区二区| 丝袜美腿成人在线| 91麻豆.com| 中文字幕一区二区三区av| 麻豆精品精品国产自在97香蕉| 欧美体内she精视频| 中文字幕一区在线观看视频| 麻豆91小视频| 欧美三级电影在线观看| 亚洲免费在线视频| av影院午夜一区| 国产亚洲欧美在线| 捆绑调教一区二区三区| 欧美三区免费完整视频在线观看| 亚洲三级小视频| 91精品婷婷国产综合久久竹菊| 亚洲一区国产视频| 色综合久久中文综合久久97| 国产精品日日摸夜夜摸av| 国产一区二区在线视频| 日韩午夜在线播放| 午夜影院久久久| 欧美精品99久久久**| 亚洲综合清纯丝袜自拍| 欧洲色大大久久| 亚洲男人的天堂av| 在线亚洲一区二区| 一区二区三区在线视频播放| 91无套直看片红桃| 亚洲精品国产精华液| 色婷婷精品大视频在线蜜桃视频 | 有坂深雪av一区二区精品| 不卡av电影在线播放| 日本一区二区高清| 不卡在线观看av| 中文字幕在线不卡一区二区三区| 成+人+亚洲+综合天堂| 自拍视频在线观看一区二区| 不卡一卡二卡三乱码免费网站| 国产精品毛片无遮挡高清| 国产精华液一区二区三区| 久久女同精品一区二区| 国产69精品久久久久毛片| 国产精品久久久久一区二区三区| 91小视频免费观看| 亚洲国产日韩综合久久精品| 91精品啪在线观看国产60岁| 久久精品国产77777蜜臀| 欧美videofree性高清杂交| 国产一区在线精品| 国产精品免费视频一区| 色婷婷综合久久久久中文| 一区二区三区免费观看| 欧美高清www午色夜在线视频| 日本va欧美va欧美va精品| 久久久久久久久久久久久女国产乱 | 亚洲在线成人精品| 欧美一区二区三区四区在线观看| 激情综合五月天| 亚洲精品国产a久久久久久| 欧美一区二区三区思思人| 国产东北露脸精品视频|