Loading...
include/asm.h Libc-262 /dev/null
--- Libc/Libc-262/include/asm.h
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef	_PPC_ASM_H_
-#define	_PPC_ASM_H_
-
-#ifdef	__ELF__
-#define __NO_UNDERSCORES__ 1
-#define	__ASMNL__	;
-#else
-#define	__ASMNL__	@
-#endif
-
-#ifdef ASSEMBLER
-
-#ifdef __ELF__
-#define r0 0
-#define r1 1
-#define r2 2
-#define r3 3
-#define r4 4
-#define r5 5
-#define r6 6
-#define r7 7
-#define r8 8
-#define r9 9
-#define r10 10
-#define r11 11
-#define r12 12
-#define r13 13
-#define r14 14
-#define r15 15
-#define r16 16
-#define r17 17
-#define r18 18
-#define r19 19
-#define r20 20
-#define r21 21
-#define r22 22
-#define r23 23
-#define r24 24
-#define r25 25
-#define r26 26
-#define r27 27
-#define r28 28
-#define r29 29
-#define r30 30
-#define r31 31
-
-#define f0 0
-#define f1 1
-#define f2 2
-#define f3 3
-#define f4 4
-#define f5 5
-#define f6 6
-#define f7 7
-#define f8 8
-#define f9 9
-#define f10 10
-#define f11 11
-#define f12 12
-#define f13 13
-#define f14 14
-#define f15 15
-#define f16 16
-#define f17 17
-#define f18 18
-#define f19 19
-#define f20 20
-#define f21 21
-#define f22 22
-#define f23 23
-#define f24 24
-#define f25 25
-#define f26 26
-#define f27 27
-#define f28 28
-#define f29 29
-#define f30 30
-#define f31 31
-
-#define sr0 0
-#define sr1 1
-#define sr2 2
-#define sr3 3
-#define sr4 4
-#define sr5 5
-#define sr6 6
-#define sr7 7
-#define sr8 8
-#define sr9 9
-#define sr10 10
-#define sr11 11
-#define sr12 12
-#define sr13 13
-#define sr14 14
-#define sr15 15
-#define sr16 16
-#define sr17 17
-#define sr18 18
-#define sr19 19
-#define sr20 20
-#define sr21 21
-#define sr22 22
-#define sr23 23
-#define sr24 24
-#define sr25 25
-#define sr26 26
-#define sr27 27
-#define sr28 28
-#define sr29 29
-#define sr30 30
-#define sr31 31
-#endif
-
-#define ARG0 r3
-#define ARG1 r4
-#define ARG2 r5
-#define ARG3 r6
-#define ARG4 r7
-#define ARG5 r8
-#define ARG6 r9
-#define ARG7 r10
-
-#define tmp0	r0	/* Temporary GPR remapping (603e specific) */
-#define tmp1	r1
-#define tmp2	r2
-#define tmp3	r3
-
-/* SPR registers */
-
-#define dmiss	976		/* ea that missed */
-#define dcmp	977		/* compare value for the va that missed */
-#define hash1	978		/* pointer to first hash pteg */
-#define	hash2	979		/* pointer to second hash pteg */
-#define imiss	980		/* ea that missed */
-#define icmp	981		/* compare value for the va that missed */
-#define rpa	982		/* required physical address register */
-
-#define iabr	1010		/* instruction address breakpoint register */
-#define pir	1023		/* Processor ID Register */
-
-/* MQ register on the 601 */
-#define mq	0		/* spr number for mq register on 601 */
-
-#define IBAT0U	528
-#define IBAT0L	529
-#define IBAT1U	530
-#define IBAT1L	531
-#define IBAT2U	532
-#define IBAT2L	533
-#define IBAT3U	534
-#define IBAT3L	535
-#define ibat0u	528
-#define ibat0l	529
-#define ibat1u	530
-#define ibat1l	531
-#define ibat2u	532
-#define ibat2l	533
-#define ibat3u	534
-#define ibat3l	535
-
-#define DBAT0U	536
-#define DBAT0L	537
-#define DBAT1U	538
-#define DBAT1L	539
-#define DBAT2U	540
-#define DBAT2L	541
-#define DBAT3U	542
-#define DBAT3L	543
-#define dbat0u	536
-#define dbat0l	537
-#define dbat1u	538
-#define dbat1l	539
-#define dbat2u	540
-#define dbat2l	541
-#define dbat3u	542
-#define dbat3l	543
-
-#define HID0	1008
-#define hid0	1008
-#define HID1	1009
-#define hid1	1009
-#define SDR1	25
-#define sprg0	272
-#define sprg1	273
-#define sprg2	274
-#define sprg3	275
-#define ppcDAR	19
-#define ppcdar	19
-#define srr0	26
-#define srr1	27
-
-#define CR0 0
-#define CR1 1
-#define CR2 2
-#define CR3 3
-#define CR4 4
-#define CR5 5
-#define CR6 6
-#define CR7 7
-
-#ifdef	__ELF__
-#define cr0 0
-#define cr1 1
-#define cr2 2
-#define cr3 3
-#define cr4 4
-#define cr5 5
-#define cr6 6
-#define cr7 7
-#endif
-
-#define cr0_lt	0
-#define cr0_gt	1
-#define cr0_eq	2
-#define cr0_so	3
-#define cr0_un	3
-
-/*
- * Macros to access high and low word values of an address
- */
-
-#ifndef	__ELF__
-#define	HIGH_CADDR(x)	ha16(x)
-#define	HIGH_ADDR(x)	hi16(x)
-#define	LOW_ADDR(x)	lo16(x)
-#else
-#define	HIGH_CADDR(x)	x@ha
-#define	HIGH_ADDR(x)	x@h
-#define	LOW_ADDR(x)	x@l
-#endif /* __ELF__ */
-
-#endif	/* ASSEMBLER */
-
-/* Tags are placed before Immediately Following Code (IFC) for the debugger
- * to be able to deduce where to find various registers when backtracing
- * 
- * We only define the values as we use them, see SVR4 ABI PowerPc Supplement
- * for more details (defined in ELF spec).
- */
-
-#define TAG_NO_FRAME_USED 0x00000000
-
-/* (should use genassym to get these offsets) */
-
-#define FM_BACKPTR 0
-/* TODO NMGS FM_SIZE 8 is ok according to EABI specs, but gcc uses 16 */
-#ifdef __ELF__
-#define FM_LR_SAVE 4  /* gcc 2.7.1 is now following eabi spec correctly */
-#define FM_SIZE    16   /* minimum frame contents, backptr and LR save */
-#define FM_ARG0	   8
-#else
-#define	FM_CR_SAVE 4
-#define FM_LR_SAVE 8 /* Rhapsody iS NOT following the ABI at the moment.. */
-#define FM_SIZE    72   /* minimum frame contents, backptr and LR save */
-#define FM_ARG0	   56
-#endif
-
-#define	FM_ELF_ARG0		8
-#define	FM_MACHO_ARG0		56
-#define	MACHO_SYSCALL_BEGIN	0x2000
-#define	PK_SYSCALL_BEGIN	0x7000
-
-
-/* redzone is the area under the stack pointer which must be preserved
- * when taking a trap, interrupt etc. This is no longer needed as gcc
- * (2.7.2 and above) now follows ELF spec correctly and never loads/stores
- * below the frame pointer
- */
-#ifdef	__ELF__
-#define FM_REDZONE 0				/* was ((32-14+1)*4) */
-#else
-#define FM_REDZONE 224				/* is ((32-14+1)*4) */
-#endif
-
-#define COPYIN_ARG0_OFFSET FM_ARG0
-
-#ifdef	MACH_KERNEL_BUILD
-#include <mach_kdb.h>
-#else	/* MACH_KERNEL */
-#define MACH_KDB 0
-#endif	/* MACH_KERNEL */
-
-#define BREAKPOINT_TRAP twge	r2,r2
-
-/* There is another definition of ALIGN for .c sources */
-#ifndef __LANGUAGE_ASSEMBLY
-#define ALIGN 2
-#endif /* __LANGUAGE_ASSEMBLY */
-
-#ifndef FALIGN
-#define FALIGN 2 /* Align functions on words for now. Cachelines is better */
-#endif
-
-#define LB(x,n) n
-#if	__STDC__
-#ifndef __NO_UNDERSCORES__
-#define	LCL(x)	L ## x
-#define EXT(x) _ ## x
-#define LEXT(x) _ ## x ## :
-#else
-#define	LCL(x)	.L ## x
-#define EXT(x) x
-#define LEXT(x) x ## :
-#endif
-#define LBc(x,n) n ## :
-#define LBb(x,n) n ## b
-#define LBf(x,n) n ## f
-#else /* __STDC__ */
-#ifndef __NO_UNDERSCORES__
-#define LCL(x) L/**/x
-#define EXT(x) _/**/x
-#define LEXT(x) _/**/x/**/:
-#else /* __NO_UNDERSCORES__ */
-#define	LCL(x)	.L/**/x
-#define EXT(x) x
-#define LEXT(x) x/**/:
-#endif /* __NO_UNDERSCORES__ */
-#define LBc(x,n) n/**/:
-#define LBb(x,n) n/**/b
-#define LBf(x,n) n/**/f
-#endif /* __STDC__ */
-
-#define String	.asciz
-#define Value	.word
-#define Times(a,b) (a*b)
-#define Divide(a,b) (a/b)
-
-#define data16	.byte 0x66
-#define addr16	.byte 0x67
-
-#if !GPROF
-#define MCOUNT
-
-#elif defined(__SHARED__)
-#define MCOUNT		; .data;\
-			.align ALIGN;\
-			LBc(x, 8) .long 0;\
-			.text;\
-			Gpush;\
-			Gload;\
-			leal Gotoff(LBb(x,8)),%edx;\
-			Egaddr(%eax,_mcount_ptr);\
-			Gpop;\
-			call *(%eax);
-
-#else	/* !GPROF, !__SHARED__ */
-#define MCOUNT		; .data;\
-			.align ALIGN;\
-			LBc(x, 8) .long 0;\
-			.text;\
-			movl $LBb(x,8),%edx;\
-			call *EXT(_mcount_ptr);
-
-#endif /* GPROF */
-
-#ifdef __ELF__
-#define ELF_FUNC(x)	.type x,@function
-#define ELF_DATA(x)	.type x,@object
-#define ELF_SIZE(x,s)	.size x,s
-#else
-#define ELF_FUNC(x)
-#define ELF_DATA(x)
-#define ELF_SIZE(x,s)
-#endif
-
-#ifdef __ELF__
-#define	Entry(x,tag)	.globl EXT(x); ELF_FUNC(EXT(x)); .long tag;.align FALIGN; LEXT(x)
-#define	ENTRY(x,tag)	Entry(x,tag) MCOUNT
-#define	ENTRY2(x,y,tag)	.globl EXT(x); .globl EXT(y); \
-			ELF_FUNC(EXT(x)); ELF_FUNC(EXT(y)); \
-			.align FALIGN; LEXT(x); LEXT(y) \
-			MCOUNT
-#if __STDC__
-#define	ASENTRY(x) 	.globl x; .align FALIGN; x ## : ELF_FUNC(x) MCOUNT
-#else
-#define	ASENTRY(x) 	.globl x; .align FALIGN; x: ELF_FUNC(x) MCOUNT
-#endif /* __STDC__ */
-#define	DATA(x)		.globl EXT(x); ELF_DATA(EXT(x)); .align ALIGN; LEXT(x)
-
-#else	/* __ELF__ */
-
-#define	Entry(x,tag)	.text@.align FALIGN@ .globl EXT(x)@ LEXT(x)
-#define	ENTRY(x,tag)	Entry(x,tag)@MCOUNT
-#define	ENTRY2(x,y,tag)	.text@ .align FALIGN@ .globl EXT(x)@ .globl EXT(y)@ \
-			LEXT(x)@ LEXT(y) @\
-			MCOUNT
-#if __STDC__
-#define	ASENTRY(x) 	.globl x @ .align FALIGN; x ## @ MCOUNT
-#else
-#define	ASENTRY(x) 	.globl x @ .align FALIGN; x @ MCOUNT
-#endif /* __STDC__ */
-#define	DATA(x)		.globl EXT(x) @ .align ALIGN @ LEXT(x)
-#endif
-
-
-
-#define End(x)		ELF_SIZE(x,.-x)
-#define END(x)		End(EXT(x))
-#define ENDDATA(x)	END(x)
-#define Enddata(x)	End(x)
-
-/* These defines are here for .c files that wish to reference global symbols
- * within __asm__ statements. 
- */
-#ifndef __NO_UNDERSCORES__
-#define CC_SYM_PREFIX "_"
-#else
-#define CC_SYM_PREFIX ""
-#endif /* __NO_UNDERSCORES__ */
-
-#endif /* _PPC_ASM_H_ */