diff options
Diffstat (limited to 'newlib/libc/sys/a29khif/sys/romdcl.h')
-rw-r--r-- | newlib/libc/sys/a29khif/sys/romdcl.h | 392 |
1 files changed, 0 insertions, 392 deletions
diff --git a/newlib/libc/sys/a29khif/sys/romdcl.h b/newlib/libc/sys/a29khif/sys/romdcl.h deleted file mode 100644 index d52ca0598..000000000 --- a/newlib/libc/sys/a29khif/sys/romdcl.h +++ /dev/null @@ -1,392 +0,0 @@ -; @(#)romdcl.h 1.4 90/10/14 20:56:12, Copyright 1988, 1989, 1990 AMD -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Copyright 1990 Advanced Micro Devices, Inc. -; -; This software is the property of Advanced Micro Devices, Inc (AMD) which -; specifically grants the user the right to modify, use and distribute this -; software provided this notice is not removed or altered. All other rights -; are reserved by AMD. -; -; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS -; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL -; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR -; USE OF THIS SOFTWARE. -; -; So that all may benefit from your experience, please report any problems -; or suggestions about this software to the 29K Technical Support Center at -; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or -; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. -; -; Advanced Micro Devices, Inc. -; 29K Support Products -; Mail Stop 573 -; 5900 E. Ben White Blvd. -; Austin, TX 78741 -; 800-292-9263 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - - .sbttl "Register, Constant and Macro Declarations - v1.4" - -; Copyright 1988, Advanced Micro Devices -; Written by Gibbons and Associates, Inc. - -;v1.4 JG correct FUNCTION macro - fault in register padding to even - -;----------------------------------------------------------------------- -;Global registers -;----------------------------------------------------------------------- - .reg rsp, gr1 ;local reg. var. stack pointer - - .equ SYS_TEMP, 64 ;system temp registers - - .reg st0, gr64 - .reg st1, gr65 - .reg st2, gr66 - .reg st3, gr67 - .reg st4, gr68 - .reg st5, gr69 - .reg st6, gr70 - .reg st7, gr71 - .reg st8, gr72 - .reg st9, gr73 - .reg st10, gr74 - .reg st11, gr75 - .reg st12, gr76 - .reg st13, gr77 - .reg st14, gr78 - .reg st15, gr79 - - .equ SYS_STAT, 80 ;system static registers - - .reg ss0, gr80 - .reg ss1, gr81 - .reg ss2, gr82 - .reg ss3, gr83 - .reg ss4, gr84 - .reg ss5, gr85 - .reg ss6, gr86 - .reg ss7, gr87 - .reg ss8, gr88 - .reg ss9, gr89 - .reg ss10, gr90 - .reg ss11, gr91 - .reg ss12, gr92 - .reg ss13, gr93 - .reg ss14, gr94 - .reg ss15, gr95 - - .equ RET_VAL, 96 ;return registers - - .reg v0, gr96 - .reg v1, gr97 - .reg v2, gr98 - .reg v3, gr99 - .reg v4, gr100 - .reg v5, gr101 - .reg v6, gr102 - .reg v7, gr103 - .reg v8, gr104 - .reg v9, gr105 - .reg v10, gr106 - .reg v11, gr107 - .reg v12, gr108 - .reg v13, gr109 - .reg v14, gr110 - .reg v15, gr111 - - .equ TEMP_REG, 96 ;temp registers - - .reg t0, gr96 - .reg t1, gr97 - .reg t2, gr98 - .reg t3, gr99 - .reg t4, gr100 - .reg t5, gr101 - .reg t6, gr102 - .reg t7, gr103 - .reg t8, gr104 - .reg t9, gr105 - .reg t10, gr106 - .reg t11, gr107 - .reg t12, gr108 - .reg t13, gr109 - .reg t14, gr110 - .reg t15, gr111 - - .equ RES_REG, 112 ;reserved (for user) - - .reg r0, gr112 - .reg r1, gr113 - .reg r2, gr114 - .reg r3, gr115 - - .equ TEMP_EXT, 116 ;temp extension (and shared) - - .reg x0, gr116 - .reg x1, gr117 - .reg x2, gr118 - .reg x3, gr119 - .reg x4, gr120 - .reg x5, gr121 - .reg x6, gr122 - .reg x7, gr123 - .reg x8, gr124 - -;----------------------------------------------------------------------- -;Global registers with special calling convention uses -;----------------------------------------------------------------------- - - .reg tav, gr121 ;trap handler argument (also x6) - .reg tpc, gr122 ;trap handler return (also x7) - .reg lsrp, gr123 ;large return pointer (also x8) - .reg slp, gr124 ;static link pointer (also x9) - .reg msp, gr125 ;memory stack pointer - .reg rab, gr126 ;register alloc bound - .reg rfb, gr127 ;register frame bound - -;----------------------------------------------------------------------- -;Local compiler registers - output parameters, etc. -; (only valid if frame has been established) -;----------------------------------------------------------------------- - - .reg p15, lr17 ;parameter registers - .reg p14, lr16 - .reg p13, lr15 - .reg p12, lr14 - .reg p11, lr13 - .reg p10, lr12 - .reg p9, lr11 - .reg p8, lr10 - .reg p7, lr9 - .reg p6, lr8 - .reg p5, lr7 - .reg p4, lr6 - .reg p3, lr5 - .reg p2, lr4 - .reg p1, lr3 - .reg p0, lr2 - - -;----------------------------------------------------------------------- -;TLB register count -;----------------------------------------------------------------------- - - .equ TLB_CNT, 128 - - .eject - -;----------------------------------------------------------------------- -;constants for general use -;----------------------------------------------------------------------- - .equ WRD_SIZ, 4 ;word size - .equ TRUE, 0x80000000 ;logical true -- bit 31 - .equ FALSE, 0x00000000 ;logical false -- 0 - .equ CHKPAT_a5, 0xa5a5a5a5 ;check pattern - -;----------------------------------------------------------------------- -;constants for data access control -;----------------------------------------------------------------------- - .equ CE, 0b1 ;coprocessor enable - .equ CD, 0b0 ;coprocessor disable - - .equ AS, 0b1000000 ;set for I/O - .equ PA, 0b0100000 ;set for physical ad - .equ SB, 0b0010000 ;set for set BP - .equ UA, 0b0001000 ;set for user access - - .equ ROM_OPT, 0b100 ;OPT values for acc - .equ DATA_OPT, 0b000 - .equ INST_OPT, 0b000 - - .equ ROM_CTL, (PA + ROM_OPT) ;control field - .equ DATA_CTL, (PA + DATA_OPT) - .equ INST_CTL, (PA + INST_OPT) - .equ IO_CTL, (AS + PA + DATA_OPT) - - - .eject - -;----------------------------------------------------------------------- -;defined vectors -;----------------------------------------------------------------------- - - .equ V_IllegalOp, 0 - .equ V_Unaligned, 1 - .equ V_OutOfRange, 2 - .equ V_NoCoProc, 3 - .equ V_CoProcExcept, 4 - .equ V_ProtViol, 5 - .equ V_InstAccExcept, 6 - .equ V_DataAccExcept, 7 - .equ V_UserInstTLB, 8 - .equ V_UserDataTLB, 9 - .equ V_SupInstTLB, 10 - .equ V_SupDataTLB, 11 - .equ V_InstTLBProt, 12 - .equ V_DataTLBProt, 13 - .equ V_Timer, 14 - .equ V_Trace, 15 - .equ V_INTR0, 16 - .equ V_INTR1, 17 - .equ V_INTR2, 18 - .equ V_INTR3, 19 - .equ V_TRAP0, 20 - .equ V_TRAP1, 21 - - ; 22 - 31 reserved - - .equ V_MULTIPLY, 32 - .equ V_DIVIDE, 33 - .equ V_MULTIPLU, 34 - .equ V_DIVIDU, 35 - .equ V_CONVERT, 36 - - ; 37 - 41 reserved - - .equ V_FEQ, 42 - .equ V_DEQ, 43 - .equ V_FGT, 44 - .equ V_DGT, 45 - .equ V_FGE, 46 - .equ V_DGE, 47 - .equ V_FADD, 48 - .equ V_DADD, 49 - .equ V_FSUB, 50 - .equ V_DSUB, 51 - .equ V_FMUL, 52 - .equ V_DMUL, 53 - .equ V_FDIV, 54 - .equ V_DDIV, 55 - - ; 56 - 63 reserved - - .equ V_SPILL, 64 - .equ V_FILL, 65 - .equ V_BSDCALL, 66 - .equ V_SYSVCALL, 67 - .equ V_BRKPNT, 68 - .equ V_EPI_OS, 69 - - .eject - - .macro R_LEFT,REGVAR - - ;Rotate left - ; - ; Parameters: REGVAR register to rotate - - add REGVAR, REGVAR, REGVAR ;shift left by 1 bit, C = MSB - addc REGVAR, REGVAR, 0 ;add C to LSB - - .endm -;---------------------------------------------------------------------- - - - .macro FUNCTION,NAME,INCNT,LOCCNT,OUTCNT - - ;Introduces a non-leaf routine. - ; - ;This macro defines the standard tag word before the function, - ;then establishes the statement label with the function's name - ;and finally allocates a register stack frame. It may not be used - ;if a memory stack frame is required. - ; - ;Note also that the size of the register stack frame is limited. - ;Neither this nor the lack of a memory frame is considered to be - ;a severe restriction in an assembly language environment. The - ;assembler will report errors if the requested frame is too large - ;for this macro. - ; - ;It may be good practice to allocate an even number of both output - ;registers and local registers. This will help in maintaining - ;double word alignment within these groups. The macro will assure - ;double word alignment of the stack frame as a whole as required - ;for correct linkage. - ; - ; Paramters: NAME the function name - ; INCNT input parameter count - ; LOCCNT local register count - ; OUTCNT output parameter count - - .set ALLOC_CNT, ((2 + OUTCNT + LOCCNT) << 2) - .set PAD_CNT, (ALLOC_CNT & 4) - .set ALLOC_CNT, (ALLOC_CNT + PAD_CNT) - .set REG_PAD, (PAD_CNT >> 2) - .if (INCNT) - .set IN_PRM, (4 + OUTCNT + REG_PAD + LOCCNT + 0x80) - .endif - .if (LOCCNT) - .set LOC_REG, (2 + OUTCNT + REG_PAD + 0x80) - .endif - .if (OUTCNT) - .set OUT_PRM, (2 + 0x80) - .endif - - .word ((2 + OUTCNT + LOCCNT) << 16) -NAME: - sub rsp, rsp, ALLOC_CNT - asgeu V_SPILL, rsp, rab - add lr1, rsp, ((4 + OUTCNT + LOCCNT + REG_PAD + INCNT) << 2) - - .endm -;---------------------------------------------------------------------- - - - .macro LEAF,NAME,INCNT - - ;Introduces a leaf routine - ; - ;This macro defines the standard tag word before the function, - ;then establishes the statement label with the function's name. - ; - ; Paramters: NAME the function name - ; INCNT input parameter count - - .if (INCNT) - .set IN_PRM, (2 + 0x80) - .endif - .set ALLOC_CNT, 0 - - .word 0 -NAME: - - .endm -;---------------------------------------------------------------------- - - - .macro EPILOGUE - - ;De-allocates register stack frame (only and only if necessary). - - .if (ALLOC_CNT) - - add rsp, rsp, ALLOC_CNT - nop - jmpi lr0 - asleu V_FILL, lr1, rfb - - .else - - jmpi lr0 - nop - - .endif - - .set IN_PRM, (1024) ;illegal, to cause err on ref - .set LOC_REG, (1024) ;illegal, to cause err on ref - .set OUT_PRM, (1024) ;illegal, to cause err on ref - .set ALLOC_CNT, (1024) ;illegal, to cause err on ref - - .endm -;---------------------------------------------------------------------- - - -;Initial values for macro set variables to guard against misuse - - .set IN_PRM, (1024) ;illegal, to cause err on ref - .set LOC_REG, (1024) ;illegal, to cause err on ref - .set OUT_PRM, (1024) ;illegal, to cause err on ref - .set ALLOC_CNT, (1024) ;illegal, to cause err on ref - -;...................................................................... -; end of romdcl.h |