   1              		.file	"irq.c"
   9              	.Ltext0:
  10              		.align	2
  11              		.global	ADI_FIQ_Interrupt_Setup
  13              	ADI_FIQ_Interrupt_Setup:
  14              	.LFB2:
  15              		.file 1 "irq.c"
   1:irq.c         **** /* Martin Thomas 1. Dec. 2007:
   2:irq.c         ****    
   3:irq.c         ****    Attributes should not be used for exception-handlers, they
   4:irq.c         ****    cause nothing but trouble. Either use a assembler wrapper
   5:irq.c         ****    of "nacked" handler with assembler-macros to store/restore
   6:irq.c         ****    registers.
   7:irq.c         ****    
   8:irq.c         ****    IRQs now handled by assembler wrapper in startup.S. 
   9:irq.c         ****    
  10:irq.c         ****    FIQ, SWI etc. not modified so far -> TODO */
  11:irq.c         **** 
  12:irq.c         **** #include <ADuC7021.h>
  13:irq.c         **** 
  14:irq.c         **** void	ADI_SWI_Interrupt_Setup(void) __attribute__ ((interrupt ("SWI")));
  15:irq.c         **** void	ADI_FIQ_Interrupt_Setup(void) __attribute__ ((interrupt ("FIQ")));
  16:irq.c         **** void	ADI_UNDEF_Interrupt_Setup(void) __attribute__ ((interrupt ("UNDEF")));
  17:irq.c         **** void	ADI_PABORT_Interrupt_Setup(void) __attribute__ ((interrupt ("PABORT")));
  18:irq.c         **** void	ADI_DABORT_Interrupt_Setup(void)  __attribute__ ((interrupt ("DABORT")));
  19:irq.c         **** 
  20:irq.c         **** #if 0
  21:irq.c         **** // see startup.S ADI_IRQ_Interrupt_Wrapper
  22:irq.c         **** void	ADI_IRQ_Interrupt_Setup(void) __attribute__ ((interrupt ("IRQ")));
  23:irq.c         **** 
  24:irq.c         **** void	ADI_IRQ_Interrupt_Setup(void) 
  25:irq.c         **** {
  26:irq.c         **** 	if ( *IRQ !=0x00)
  27:irq.c         **** 	{
  28:irq.c         **** 		IRQ();
  29:irq.c         **** 	}
  30:irq.c         **** }
  31:irq.c         **** #endif
  32:irq.c         **** 
  33:irq.c         **** void	ADI_FIQ_Interrupt_Setup(void) 
  34:irq.c         **** {
  16              	 Fast Interrupt Service Routine.
  17              		@ args = 0, pretend = 0, frame = 0
  18              		@ frame_needed = 0, uses_anonymous_args = 0
  19              		sub	lr, lr, #4
  20 0000 04E04EE2 		stmfd	sp!, {r0, r1, r2, r3, lr}
  21 0004 0F402DE9 	.LCFI0:
  22              		.loc 1 35 0
  35:irq.c         **** 	if ( *FIQ !=0x00)
  23              	, .L6
  24 0008 14309FE5 		ldr	r3, [r3, #0]
  25 000c 003093E5 		cmp	r3, #0
  26 0010 000053E3 		ldmeqfd	sp!, {r0, r1, r2, r3, pc}^
  27 0014 0F80FD08 		.loc 1 37 0
  36:irq.c         **** 	{
  37:irq.c         **** 		FIQ();
  28              	lr, pc
  29 0018 0FE0A0E1 		bx	r3
  30 001c 13FF2FE1 		ldmfd	sp!, {r0, r1, r2, r3, pc}^
  31 0020 0F80FDE8 	.L7:
  32              		.align	2
  33              	.L6:
  34              		.word	FIQ
  35 0024 00000000 	.LFE2:
  37              		.align	2
  38              		.global	ADI_SWI_Interrupt_Setup
  40              	ADI_SWI_Interrupt_Setup:
  41              	.LFB3:
  42              		.loc 1 42 0
  38:irq.c         **** 	}
  39:irq.c         **** }
  40:irq.c         **** 
  41:irq.c         **** void	ADI_SWI_Interrupt_Setup(void) 
  42:irq.c         **** {
  43              	n Handler.
  44              		@ args = 0, pretend = 0, frame = 0
  45              		@ frame_needed = 0, uses_anonymous_args = 0
  46              		stmfd	sp!, {r0, r1, r2, r3, ip, lr}
  47 0028 0F502DE9 	.LCFI1:
  48              		.loc 1 43 0
  43:irq.c         **** 	if ( *SWI !=0x00)
  49              	3, .L12
  50 002c 14309FE5 		ldr	r3, [r3, #0]
  51 0030 003093E5 		cmp	r3, #0
  52 0034 000053E3 		ldmeqfd	sp!, {r0, r1, r2, r3, ip, pc}^
  53 0038 0F90FD08 		.loc 1 45 0
  44:irq.c         **** 	{
  45:irq.c         **** 		SWI();
  54              	lr, pc
  55 003c 0FE0A0E1 		bx	r3
  56 0040 13FF2FE1 		ldmfd	sp!, {r0, r1, r2, r3, ip, pc}^
  57 0044 0F90FDE8 	.L13:
  58              		.align	2
  59              	.L12:
  60              		.word	SWI
  61 0048 00000000 	.LFE3:
  63              		.align	2
  64              		.global	ADI_UNDEF_Interrupt_Setup
  66              	ADI_UNDEF_Interrupt_Setup:
  67              	.LFB4:
  68              		.loc 1 50 0
  46:irq.c         **** 	}
  47:irq.c         **** }
  48:irq.c         **** 
  49:irq.c         **** void	ADI_UNDEF_Interrupt_Setup(void) 
  50:irq.c         **** {
  69              	n Handler.
  70              		@ args = 0, pretend = 0, frame = 0
  71              		@ frame_needed = 0, uses_anonymous_args = 0
  72              		stmfd	sp!, {r0, r1, r2, r3, ip, lr}
  73 004c 0F502DE9 	.LCFI2:
  74              		.loc 1 51 0
  51:irq.c         **** 	if ( *UNDEF !=0x00)
  75              	3, .L18
  76 0050 14309FE5 		ldr	r3, [r3, #0]
  77 0054 003093E5 		cmp	r3, #0
  78 0058 000053E3 		ldmeqfd	sp!, {r0, r1, r2, r3, ip, pc}^
  79 005c 0F90FD08 		.loc 1 53 0
  52:irq.c         **** 	{
  53:irq.c         **** 		UNDEF();
  80              	lr, pc
  81 0060 0FE0A0E1 		bx	r3
  82 0064 13FF2FE1 		ldmfd	sp!, {r0, r1, r2, r3, ip, pc}^
  83 0068 0F90FDE8 	.L19:
  84              		.align	2
  85              	.L18:
  86              		.word	UNDEF
  87 006c 00000000 	.LFE4:
  89              		.align	2
  90              		.global	ADI_PABORT_Interrupt_Setup
  92              	ADI_PABORT_Interrupt_Setup:
  93              	.LFB5:
  94              		.loc 1 58 0
  54:irq.c         **** 	}
  55:irq.c         **** }
  56:irq.c         **** 
  57:irq.c         **** void	ADI_PABORT_Interrupt_Setup(void) 
  58:irq.c         **** {
  95              	etend = 0, frame = 0
  96              		@ frame_needed = 0, uses_anonymous_args = 0
  97              		.loc 1 59 0
  59:irq.c         **** 	if ( *PABORT !=0x00)
  98              	r	r3, .L24
  99 0070 18309FE5 		ldr	r3, [r3, #0]
 100 0074 003093E5 		cmp	r3, #0
 101 0078 000053E3 		.loc 1 58 0
 102              		str	lr, [sp, #-4]!
 103 007c 04E02DE5 	.LCFI3:
 104              		.loc 1 59 0
 105              		ldreq	pc, [sp], #4
 106 0080 04F09D04 		.loc 1 61 0
  60:irq.c         **** 	{
  61:irq.c         **** 		PABORT();
 107              	pc
 108 0084 0FE0A0E1 		bx	r3
 109 0088 13FF2FE1 		ldr	pc, [sp], #4
 110 008c 04F09DE4 	.L25:
 111              		.align	2
 112              	.L24:
 113              		.word	PABORT
 114 0090 00000000 	.LFE5:
 116              		.align	2
 117              		.global	ADI_DABORT_Interrupt_Setup
 119              	ADI_DABORT_Interrupt_Setup:
 120              	.LFB6:
 121              		.loc 1 66 0
  62:irq.c         **** 	}
  63:irq.c         **** }
  64:irq.c         **** 
  65:irq.c         **** void	ADI_DABORT_Interrupt_Setup(void) 
  66:irq.c         **** {
 122              	etend = 0, frame = 0
 123              		@ frame_needed = 0, uses_anonymous_args = 0
 124              		.loc 1 67 0
  67:irq.c         **** 	if ( *DABORT !=0x00)
 125              	r	r3, .L30
 126 0094 18309FE5 		ldr	r3, [r3, #0]
 127 0098 003093E5 		cmp	r3, #0
 128 009c 000053E3 		.loc 1 66 0
 129              		str	lr, [sp, #-4]!
 130 00a0 04E02DE5 	.LCFI4:
 131              		.loc 1 67 0
 132              		ldreq	pc, [sp], #4
 133 00a4 04F09D04 		.loc 1 69 0
  68:irq.c         **** 	{
  69:irq.c         **** 		DABORT();
 134              	pc
 135 00a8 0FE0A0E1 		bx	r3
 136 00ac 13FF2FE1 		ldr	pc, [sp], #4
 137 00b0 04F09DE4 	.L31:
 138              		.align	2
 139              	.L30:
 140              		.word	DABORT
 141 00b4 00000000 	.LFE6:
 143              		.comm	IRQ,4,4
 144              		.comm	SWI,4,4
 145              		.comm	FIQ,4,4
 146              		.comm	UNDEF,4,4
 147              		.comm	PABORT,4,4
 148              		.comm	DABORT,4,4
 149              		.section	.debug_frame,"",%progbits
 265              		.section	.debug_loc,"",%progbits
DEFINED SYMBOLS
                            *ABS*:00000000 irq.c
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:13     .text:00000000 ADI_FIQ_Interrupt_Setup
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:20     .text:00000000 $a
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:35     .text:00000024 $d
                            *COM*:00000004 FIQ
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:41     .text:00000028 ADI_SWI_Interrupt_Setup
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:47     .text:00000028 $a
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:61     .text:00000048 $d
                            *COM*:00000004 SWI
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:67     .text:0000004c ADI_UNDEF_Interrupt_Setup
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:73     .text:0000004c $a
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:87     .text:0000006c $d
                            *COM*:00000004 UNDEF
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:93     .text:00000070 ADI_PABORT_Interrupt_Setup
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:99     .text:00000070 $a
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:114    .text:00000090 $d
                            *COM*:00000004 PABORT
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:120    .text:00000094 ADI_DABORT_Interrupt_Setup
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:126    .text:00000094 $a
C:\DOCUME~1\David\LOCALS~1\Temp/ccR4Ki4Q.s:141    .text:000000b4 $d
                            *COM*:00000004 DABORT
                            *COM*:00000004 IRQ

NO UNDEFINED SYMBOLS
