⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hp-milli.s

📁 俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)的全部源代码。
💻 S
📖 第 1 页 / 共 4 页
字号:
;;  (c) Copyright 1986 HEWLETT-PACKARD COMPANY;;  To anyone who acknowledges that this file is provided "AS IS";  without any express or implied warranty:;      permission to use, copy, modify, and distribute this file;  for any purpose is hereby granted without fee, provided that;  the above copyright notice and this notice appears in all;  copies, and that the name of Hewlett-Packard Company not be;  used in advertising or publicity pertaining to distribution;  of the software without specific, written prior permission.;  Hewlett-Packard Company makes no representations about the;  suitability of this software for any purpose.;; Standard Hardware Register Definitions for Use with Assembler; version A.08.06;	- fr16-31 added at Utah;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~; Hardware General Registersr0: .equ	0r1: .equ	1r2: .equ	2r3: .equ	3r4: .equ	4r5: .equ	5r6: .equ	6r7: .equ	7r8: .equ	8r9: .equ	9r10: .equ	10r11: .equ	11r12: .equ	12r13: .equ	13r14: .equ	14r15: .equ	15r16: .equ	16r17: .equ	17r18: .equ	18r19: .equ	19r20: .equ	20r21: .equ	21r22: .equ	22r23: .equ	23r24: .equ	24r25: .equ	25r26: .equ	26r27: .equ	27r28: .equ	28r29: .equ	29r30: .equ	30r31: .equ	31; Hardware Space Registerssr0: .equ	0sr1: .equ	1sr2: .equ	2sr3: .equ	3sr4: .equ	4sr5: .equ	5sr6: .equ	6sr7: .equ	7; Hardware Floating Point Registersfr0: .equ	0fr1: .equ	1fr2: .equ	2fr3: .equ	3fr4: .equ	4fr5: .equ	5fr6: .equ	6fr7: .equ	7fr8: .equ	8fr9: .equ	9fr10: .equ	10fr11: .equ	11fr12: .equ	12fr13: .equ	13fr14: .equ	14fr15: .equ	15fr16: .equ	16fr17: .equ	17fr18: .equ	18fr19: .equ	19fr20: .equ	20fr21: .equ	21fr22: .equ	22fr23: .equ	23fr24: .equ	24fr25: .equ	25fr26: .equ	26fr27: .equ	27fr28: .equ	28fr29: .equ	29fr30: .equ	30fr31: .equ	31; Hardware Control Registerscr0: .equ	0rctr: .equ	0			; Recovery Counter Registercr8: .equ	8			; Protection ID 1pidr1: .equ	8cr9: .equ	9			; Protection ID 2pidr2: .equ	9cr10: .equ	10ccr: .equ	10			; Coprocessor Confiquration Registercr11: .equ	11sar: .equ	11			; Shift Amount Registercr12: .equ	12pidr3: .equ	12			; Protection ID 3cr13: .equ	13pidr4: .equ	13			; Protection ID 4cr14: .equ	14iva: .equ	14			; Interrupt Vector Addresscr15: .equ	15eiem: .equ	15			; External Interrupt Enable Maskcr16: .equ	16itmr: .equ	16			; Interval Timercr17: .equ	17pcsq: .equ	17			; Program Counter Space queuecr18: .equ	18pcoq: .equ	18			; Program Counter Offset queuecr19: .equ	19iir: .equ	19			; Interruption Instruction Registercr20: .equ	20isr: .equ	20			; Interruption Space Registercr21: .equ	21ior: .equ	21			; Interruption Offset Registercr22: .equ	22ipsw: .equ	22			; Interrpution Processor Status Wordcr23: .equ	23eirr: .equ	23			; External Interrupt Requestcr24: .equ	24ppda: .equ	24			; Physcial Page Directory Addresstr0: .equ	24			; Temporary register 0cr25: .equ	25hta: .equ	25			; Hash Table Addresstr1: .equ	25			; Temporary register 1cr26: .equ	26tr2: .equ	26			; Temporary register 2cr27: .equ	27tr3: .equ	27			; Temporary register 3cr28: .equ	28tr4: .equ	28			; Temporary register 4cr29: .equ	29tr5: .equ	29			; Temporary register 5cr30: .equ	30tr6: .equ	30			; Temporary register 6cr31: .equ	31tr7: .equ	31			; Temporary register 7;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~; Procedure Call Convention                                                  ~; Register Definitions for Use with Assembler                                ~; version A.08.06;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~; Software Architecture General Registersrp: .equ    r2	; return pointermrp: .equ	r31	; millicode return pointerret0: .equ    r28	; return valueret1: .equ    r29	; return value (high part of double)sl: .equ    r29	; static linksp: .equ 	r30	; stack pointerdp: .equ	r27	; data pointerarg0: .equ	r26	; argumentarg1: .equ	r25	; argument or high part of double argumentarg2: .equ	r24	; argumentarg3: .equ	r23	; argument or high part of double argument;_____________________________________________________________________________; Software Architecture Space Registers;		sr0	; return link form BLEsret: .equ	sr1	; return valuesarg: .equ	sr1	; argument;		sr4	; PC SPACE tracker;		sr5	; process private data;_____________________________________________________________________________; Software Architecture Pseudo Registersprevious_sp: .equ	64	; old stack pointer (locates previous frame);~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~; Standard space and subspace definitions.  version A.08.06; These are generally suitable for programs on HP_UX and HPE.; Statements commented out are used when building such things as operating; system kernels.;;;;;;;;;;;;;;;;	.SPACE	$TEXT$,		SPNUM=0,SORT=8	.subspa $MILLICODE$,	QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=8	.subspa $LIT$,		QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16	.subspa $CODE$,		QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=24; Additional code subspaces should have ALIGN=8 for an interspace BV; and should have SORT=24.; ; For an incomplete executable (program bound to shared libraries), ; sort keys $GLOBAL$ -1 and $GLOBAL$ -2 are reserved for the $DLT$ ; and $PLT$ subspaces respectively. ;;;;;;;;;;;;;;;	.SPACE $PRIVATE$,	SPNUM=1,PRIVATE,SORT=16	.subspa $GLOBAL$,	QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=40	.import $global$	.subspa $DATA$,		QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=16	.subspa $BSS$,		QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82,ZERO	.SPACE $TEXT$	.SUBSPA $MILLICODE$	.align 8	.EXPORT $$remI,millicode;	.IMPORT	cerror$$remI: 	.PROC	.CALLINFO millicode	.ENTRY	addit,= 0,arg1,r0	add,>= r0,arg0,ret1	sub r0,ret1,ret1	sub r0,arg1,r1	ds r0,r1,r0	or r0,r0,r1	add ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	ds r1,arg1,r1	addc ret1,ret1,ret1	movb,>=,n r1,ret1,remI300	add,< arg1,r0,r0	add,tr r1,arg1,ret1	sub r1,arg1,ret1remI300: add,>= arg0,r0,r0	sub r0,ret1,ret1	bv r0(r31)	nop	.EXIT	.PROCENDbit1:  .equ 1bit30: .equ 30bit31: .equ 31len2:  .equ 2len4:  .equ 4$$dyncall: 	.proc	.callinfo NO_CALLS	.entry	.export $$dyncall,MILLICODE	bb,>=,n	22,bit30,noshlibs	depi	0,bit31,len2,22	ldw	4(22),19	ldw	0(22),22noshlibs:	ldsid	(22),r1	mtsp	r1,sr0	be	0(sr0,r22)	stw	rp,-24(sp)	.exit	.procendtemp: .EQU	r1retreg: .EQU	ret1	; r29	.export $$divU,millicode	.import $$divU_3,millicode	.import $$divU_5,millicode	.import $$divU_6,millicode	.import $$divU_7,millicode	.import $$divU_9,millicode	.import $$divU_10,millicode	.import $$divU_12,millicode	.import $$divU_14,millicode	.import $$divU_15,millicode$$divU: 	.proc	.callinfo millicode

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -