
; Generated by gcc 2.95.4 20010319 (prerelease) [gccsdk 20010912] for ARM/RISC OS

 get doopermacros.s

 AREA |C$$code1|, CODE, READONLY

; dcd 0,0,0,0

|L..9|
 DCD |enwindow|


 EXPORT |window_subband|
|window_subband|
 stmfd r13!, {r4 - r9, r14}
 sub r13, r13, #24
 stmia r13, {r0, r1} ; phole stm
 ldr r8, |L..9|      ; *r8  = wp
 mvn r7, #14
 sub r0, r0, #496
 str r0, [r13, #8]

|L..6|
 ldr r9, [r13, #8]  ; *r9  = x2
 mov r6, #7
 ldmia r8!, {r2, r3}
 sub r9, r9, #1792
 ldmia r9, {r0, r1}
 add r9, r9, #512
 bl |__muldf3|

|..newloop1|
 ldmia r9, {r2, r3}
 add r9, r9, #512
 ldmia r8!, {r4, r5}
  muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__adddf3|
 subs r6, r6, #1
 bgt |..newloop1|

 ldr r9, [r13, #0]   ; *r9  = x1
 mov r6, #8
 sub r9, r9, #2048

|..newloop2|
 ldmia r9, {r2, r3}
 add r9, r9, #512
 ldmia r8!, {r4, r5}
  muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__adddf3|
 subs r6, r6, #1
 bgt |..newloop2|

 add r12, r13, #16
 stmia r12, {r0, r1} ;  = s

 sub r8, r8, #128
 ldmia r8!, {r2, r3}
 sub r9, r9, #256
 ldmia r9, {r0, r1}
 sub r9, r9, #512
 mov r6, #7
 bl |__muldf3|

|..newloop3|
 ldmia r9, {r2, r3}
 sub r9, r9, #512
 ldmia r8!, {r4, r5}
  muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__adddf3|
 subs r6, r6, #1
 bgt |..newloop3|

 ldr r9, [r13, #8]   ; *r9 = x2
 mov r6, #8
 add r9, r9, #2048

|..newloop4|
 ldmia r9, {r2, r3}
 sub r9, r9, #512
 ldmia r8!, {r4, r5}
  muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__subdf3|
 subs r6, r6, #1
 bgt |..newloop4|

 mov r5, r0   ; =t
 mov r6, r1
 ldmia r8!, {r2, r3}
 add r12, r13, #16
 ldmia r12, {r0, r1}
 bl |__muldf3|
 ldr r4, [r13, #4]
 mov r2, r0
 mov r3, r1
 mov r0, r5   ; t
 mov r1, r6
 bl |__adddf3|         ; preserves r2, r3
 add r4, r4, r7, lsl #4
 add r12, r4, #240
 stmia r12, {r0, r1}
 mov r0, r5   ; t
 mov r1, r6
 bl |__subdf3|
 ldmia r8!, {r2, r3}
 bl |__muldf3|
 ldr r3, [r13, #0]
 add r4, r4, #248
 stmia r4, {r0, r1}
 ldr r12, [r13, #8]
 sub r3, r3, #8
 str r3, [r13, #0]
 add r12, r12, #8
 str r12, [r13, #8]
 adds r7, r7, #1
 bmi |L..6|

 add r12, r8, #80
 str r12, [r13, #12]

 mov r9, r8
 ldmia r9!, {r2, r3}
 ldr r8, [r13, #0]
 sub r12, r8, #128
 ldmia r12, {r0, r1}
 bl |__muldf3|
 mov r4, r0
 mov r5, r1
 sub r12, r8, #384
 ldmia r12, {r0, r1}
 add r12, r8, #128
 ldmia r12, {r2, r3}
 bl |__subdf3|
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 mov r2, r4
 mov r3, r5
 bl |__adddf3|
 mov r4, r0
 mov r5, r1
 sub r12, r8, #640
 ldmia r12, {r0, r1}
 add r12, r8, #384
 ldmia r12, {r2, r3}
 bl |__adddf3|
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 mov r2, r4
 mov r3, r5
 bl |__adddf3|
 mov r5, r0
 mov r6, r1
 sub r12, r8, #896
 ldmia r12, {r0, r1}
 add r12, r8, #640
 ldmia r12, {r2, r3}
 bl |__subdf3|
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 mov r2, r5
 mov r3, r6
 bl |__adddf3|
 mov r5, r0
 mov r6, r1
 sub r12, r8, #1152
 ldmia r12, {r0, r1}
 add r12, r8, #896
 ldmia r12, {r2, r3}
 bl |__adddf3|
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 mov r2, r5
 mov r3, r6
 bl |__adddf3|
 mov r4, r0
 mov r5, r1
 sub r12, r8, #1408
 ldmia r12, {r0, r1}
 add r12, r8, #1152
 ldmia r12, {r2, r3}
 bl |__subdf3|
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 mov r2, r4
 mov r3, r5
 bl |__adddf3|
 mov r4, r0
 mov r5, r1
 sub r12, r8, #1664
 ldmia r12, {r0, r1}
 add r12, r8, #1408
 ldmia r12, {r2, r3}
 bl |__adddf3|
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 mov r2, r4
 mov r3, r5
 bl |__adddf3|
 mov r4, r0
 mov r5, r1
 sub r12, r8, #1920
 ldmia r12, {r0, r1}
 add r12, r8, #1664
 ldmia r12, {r2, r3}
 bl |__subdf3|
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 mov r2, r4
 mov r3, r5
 bl |__adddf3|
 add r12, r13, #16
 stmia r12, {r0, r1}

 sub r12, r8, #256
 ldmia r12, {r0, r1}
 ldmia r9!, {r2, r3}
 bl |__muldf3|
 ldmia r9!, {r2, r3}
 sub r12, r8, #768
 ldmia r12, {r4, r5}
   muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__adddf3|
 ldmia r9!, {r2, r3}
 sub r12, r8, #1280
 ldmia r12, {r4, r5}
   muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__adddf3|
 ldmia r9!, {r2, r3}
 sub r12, r8, #1792
 ldmia r12, {r4, r5}
   muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__adddf3|
 ldmia r9!, {r2, r3}
 add r12, r8, #256
 ldmia r12, {r4, r5}
   muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__subdf3|
 ldmia r9!, {r2, r3}
 add r12, r8, #768
 ldmia r12, {r4, r5}
   muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__subdf3|
 ldmia r9!, {r2, r3}
 add r12, r8, #1280
 ldmia r12, {r4, r5}
   muldf3   r2, r3,   r2, r3,   r4, r5
 bl |__subdf3|
 add r12, r8, #1792
 ldmia r12, {r2, r3}
 bl |__subdf3|
 mov r4, r0
 mov r5, r1

 add r12, r13, #16
 ldmia r12, {r2, r3}
 bl |__adddf3|   ; preserves r2, r3
 mov r6, r0
 mov r7, r1
 mov r0, r4
 mov r1, r5
 bl |__subdf3|
 add r12, r13, #16
 stmia r12, {r0, r1}

 ldr r5, [r13, #4]
 add r12, r5, #112
 ldmia r12, {r2, r3}
 mov r0, r6
 mov r1, r7
 bl |__adddf3|   ; preserves r2, r3
 add r12, r5, #248
 stmia r12, {r0, r1}
 mov r0, r6
 mov r1, r7
 bl |__subdf3|   ; inverts bit 31 of r2, preserves r3
 add r12, r5, #112
 stmia r12, {r0, r1}
 add r8, r5, #120
 ldmia r8, {r0, r1}
 bl |__adddf3|   ; a + -b
 mov r6, r0
 mov r7, r1
 add r12, r13, #16
 ldmia r12, {r2, r3}
 bl |__adddf3|   ; preserves r2, r3
 add r12, r5, #240
 stmia r12, {r0, r1}
 eor r0, r6, #1<<31
 mov r1, r7
 bl |__adddf3|   ; -b + a
 stmia r8, {r0, r1}


 mov r8, #12
 add r4, r5, #224
 sub r9, r9, #272   ; (-2*18+7)*8

|L..12|
 ldmia r4, {r0, r1}
 ldmia r5, {r2, r3}
 bl |__adddf3|       ; preserves r2, r3
 stmia r5!, {r0, r1}
 ldmia r4, {r0, r1}
 bl |__subdf3|
 ldmia r9, {r2, r3}
 bl |__muldf3|
 stmia r4!, {r0, r1}
 ldmia r4, {r0, r1}
 ldmia r5, {r2, r3}
 bl |__adddf3|       ; preserves r2, r3
 stmia r5!, {r0, r1}
 ldmia r4, {r0, r1}
 bl |__subdf3|
 ldmia r9, {r2, r3}
 sub r9, r9, #288
 bl |__muldf3|
 stmia r4, {r0, r1}
 sub r4, r4, #24
 subs r8, r8, #2
 bpl |L..12|

 ldr r4, [r13, #4]
 mov r8, #8
 ldr r9, [r13, #12]
 add r5, r4, #96
 sub r9, r9, #520

|L..18|
 ldmia r4, {r2, r3}
 ldmia r5, {r0, r1}
 bl |__adddf3|    ; preserves r2, r3
 stmia r4!, {r0, r1}
 ldmia r5, {r0, r1}
 eor r0, r0, #1<<31
 bl |__adddf3|
 ldmia r9, {r2, r3}
 bl |__muldf3|
 stmia r5!, {r0, r1}
 ldmia r4, {r2, r3}
 ldmia r5, {r0, r1}
 bl |__adddf3|    ; preserves r2, r3
 stmia r4!, {r0, r1}
 ldmia r5, {r0, r1}
 eor r0, r0, #1<<31
 bl |__adddf3|
 ldmia r9, {r2, r3}
 sub r9, r9, #576
 bl |__muldf3|
 stmia r5, {r0, r1}
 sub r5, r5, #24
 subs r8, r8, #4
 bpl |L..18|

 ldr r0, [r13, #4]
 mov r8, #8
 ldr r9, [r13, #12]
 add r4, r0, #224
 add r5, r0, #128
 sub r9, r9, #520

|L..23|
 ldmia r4, {r0, r1}
 ldmia r5, {r2, r3}
 bl |__adddf3|     ; preserves r2, r3
 stmia r5!, {r0, r1}
 ldmia r4, {r0, r1}
 bl |__subdf3|
 ldmia r9, {r2, r3}
 bl |__muldf3|
 stmia r4!, {r0, r1}
 ldmia r4, {r0, r1}
 ldmia r5, {r2, r3}
 bl |__adddf3|     ; preserves r2, r3
 stmia r5!, {r0, r1}
 ldmia r4, {r0, r1}
 bl |__subdf3|
 ldmia r9, {r2, r3}
 sub r9, r9, #576
 bl |__muldf3|
 stmia r4, {r0, r1}
 sub r4, r4, #24
 subs r8, r8, #4
 bpl |L..23|

 ldr r12, [r13, #12]
 sub r4, r12, #1088
 ldr r7, [r13, #4]
 ldmdb r4, {r4, r5}
 mov r8, r7
 bl |jop1|
 bl |jop1|
 add r8, r7, #128
 bl |jop1|
 bl |jop1|
 add r8, r7, #64
 bl |jop2|
 bl |jop2|
 add r8, r7, #192
 bl |jop2|
 bl |jop2|

 ldr r4, [r13, #4]

 add r8, r4, #208
 ldmia r8, {r0, r1}
 add r12, r4, #144
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r8, {r0, r1}
 add r8, r4, #152
 ldmia r8, {r0, r1}
 add r12, r4, #24
 ldmia r12, {r2, r3}
 bl |__subdf3|   ; inverts bit 31 of r2, preserves r3
 stmia r8, {r0, r1}
 add r12, r4, #88
 ldmia r12, {r0, r1}
 eor r2, r2, #1<<31
 bl |__adddf3|
 add r8, r4, #216
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|      ; -a + b
 stmia r8, {r0, r1}
 add r8, r4, #88
 ldmia r8, {r0, r1}
 add r12, r4, #152
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r8, {r0, r1}
 add r8, r4, #56
 ldmia r8, {r0, r1}
 add r12, r4, #48
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r8, {r0, r1}
 add r12, r4, #176
 ldmia r12, {r0, r1}
 add r12, r4, #48
 ldmia r12, {r2, r3}
 bl |__adddf3|
 add r8, r4, #184
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r8, {r0, r1}
 add r8, r4, #176
 ldmia r8, {r0, r1}
 add r12, r4, #56
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r8, {r0, r1}
 add r12, r4, #16
 ldmia r12, {r2, r3}
 add r8, r4, #24
 ldmia r8, {r0, r1}
 bl |__subdf3|
 stmia r8, {r0, r1}
 add r8, r4, #144
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r8, {r0, r1}
 add r8, r4, #152
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r8, {r0, r1}
 add r8, r4, #80
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r8, {r0, r1}
 add r8, r4, #88
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r8, {r0, r1}
 add r8, r4, #208
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r8, {r0, r1}
 add r8, r4, #216
 ldmia r8, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r8, {r0, r1}

 add r9, r4, #48
 add r8, r4, #248
 bl |jop3|
 add r9, r4, #56
 add r8, r4, #240
 bl |jop3|
 add r9, r4, #176
 add r8, r4, #120
 bl |jop3|
 add r9, r4, #184
 add r8, r4, #112
 bl |jop3|

 mov r9, #4
 add r5, r4, #16
 add r6, r4, #248

|newloop5|
 ldmia r6, {r2, r3}
 ldmia r5, {r0, r1}
 bl |__adddf3|    ; preserves r2, r3
 stmia r6, {r0, r1}
 ldmia r5, {r0, r1}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 ldmdb r6, {r2, r3}
 stmia r5!, {r0, r1}
 ldmia r5, {r0, r1}
 bl |__adddf3|    ; preserves r2, r3
 stmdb r6, {r0, r1}
 ldmia r5, {r0, r1}
 eor r0, r0, #1<<31
 bl |__adddf3|    ; -a + b
 stmia r5, {r0, r1}
 add r5, r5, #56
 sub r6, r6, #64
 subs r9, r9, #1
 bgt |newloop5|


 add r8, r4, #96
 ldmia r8, {r0, r1}
 add r12, r4, #64
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r8, {r0, r1}
 add r8, r4, #104
 ldmia r8, {r0, r1}
 add r12, r4, #72
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r8, {r0, r1}

 add r8, r4, #160
 ldmia r8, {r0, r1}
 add r12, r4, #128
 ldmia r12, {r2, r3}
 bl |__adddf3|
 add r9, r4, #224
 ldmia r9, {r2, r3}
 mov r5, r0
 mov r6, r1
 eor r0, r0, #1<<31
 bl |__adddf3|      ; -a + b
 stmia r9, {r0, r1}
 add r12, r4, #192
 ldmia r12, {r2, r3}
 mov r0, r5
 mov r1, r6
 bl |__subdf3|   ; inverts bit 31 of r2, preserves r3
 stmia r8, {r0, r1}
 add r12, r4, #128
 ldmia r12, {r0, r1}
 bl |__adddf3|
 eor r0, r0, #1<<31    ; -(a + -b)
 add r12, r4, #192
 stmia r12, {r0, r1}

 add r8, r4, #168
 ldmia r8, {r0, r1}
 add r12, r4, #136
 ldmia r12, {r2, r3}
 bl |__adddf3|
 add r9, r4, #232
 ldmia r9, {r2, r3}
 mov r5, r0
 mov r6, r1
 eor r0, r0, #1<<31
 bl |__adddf3|      ; -a + b
 stmia r9, {r0, r1}
 add r12, r4, #200
 ldmia r12, {r2, r3}
 mov r0, r5
 mov r1, r6
 bl |__subdf3|   ; inverts bit 31 of r2, preserves r3
 stmia r8, {r0, r1}
 add r12, r4, #136
 ldmia r12, {r0, r1}
 bl |__adddf3|
 eor r0, r0, #1<<31    ; -(a + -b)
 add r12, r4, #200
 stmia r12, {r0, r1}

 add r12, r4, #8
 ldmia r12, {r0, r1}
 ldmia r4, {r2, r3}
 bl |__subdf3|
 add r12, r4, #8
 stmia r12, {r0, r1}

 add r12, r4, #128
 ldmia r12, {r0, r1}
 ldmia r4, {r2, r3}
 bl |__adddf3|
 add r12, r4, #136
 ldmia r12, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|      ; -a + b
 add r12, r4, #136
 stmia r12, {r0, r1}

 add r8, r4, #128
 add r12, r4, #8
 add r9, r4, #64
 bl |jop4|
 add r8, r4, #64
 add r12, r4, #136
 add r9, r4, #192
 bl |jop4|
 add r8, r4, #192
 add r12, r4, #72
 add r9, r4, #32
 bl |jop4|
 add r8, r4, #32
 add r12, r4, #200
 add r9, r4, #160
 bl |jop4|
 add r8, r4, #160
 add r12, r4, #40
 add r9, r4, #96
 bl |jop4|
 add r8, r4, #96
 add r12, r4, #168
 add r9, r4, #224
 bl |jop4|
 add r9, r4, #224
 ldmia r9, {r0, r1}
 add r12, r4, #104
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r9, {r0, r1}

 add r5, r4, #248
 mov r8, #8

|newloop6|
 ldmia r5, {r0, r1}
 ldmia r4, {r2, r3}
 bl |__adddf3|      ; preserves r2, r3
 stmia r4!, {r0, r1}
 ldmia r5, {r0, r1}
 bl |__subdf3|
 ldmia r4, {r2, r3}
 stmia r5, {r0, r1}
 ldmdb r5, {r0, r1}
 bl |__adddf3|      ; preserves r2, r3
 stmia r4, {r0, r1}
 ldmdb r5, {r0, r1}
 bl |__subdf3|
 stmdb r5, {r0, r1}
 add r4, r4, #24
 sub r5, r5, #32
 subs r8, r8, #1
 bgt |newloop6|

 add r13, r13, #24
 ldmfd r13!, {r4 - r9, r15}


|jop1|
 ldmia r8, {r2, r3}
 add r9, r8, #32
 ldmia r9, {r0, r1}
 str r14, [r13, #-4]!
 bl |__adddf3|       ; preserves r2, r3
 stmia r8!, {r0, r1}
 ldmia r9, {r0, r1}
 eor r0, r0, #1<<31
 bl |__adddf3|       ; -a + b
 mov r2, r4
 mov r3, r5
 bl |__muldf3|
 stmia r9, {r0, r1}
 ldr r15, [r13], #4


|jop2|
 ldmia r8, {r2, r3}
 add r9, r8, #32
 ldmia r9, {r0, r1}
 str r14, [r13, #-4]!
 bl |__adddf3|       ; preserves r2, r3
 stmia r8!, {r0, r1}
 ldmia r9, {r0, r1}
 bl |__subdf3|
 mov r2, r4
 mov r3, r5
 bl |__muldf3|
 stmia r9, {r0, r1}
 ldr r15, [r13], #4


|jop3|
 ldmia r8, {r2, r3}
 str r14, [r13, #-4]!
 ldmia r9, {r0, r1}
 bl |__adddf3|       ; preserves r2, r3
 stmia r8, {r0, r1}
 ldmia r9, {r0, r1}
 eor r0, r0, #1<<31
 bl |__adddf3|       ; -a + b
 stmia r9, {r0, r1}
 ldr r15, [r13], #4


|jop4|
 ldmia r8, {r0, r1}
 str r14, [r13, #-4]!
 ldmia r12, {r2, r3}
 bl |__subdf3|
 stmia r8, {r0, r1}
 ldmia r9!, {r2, r3}
 bl |__adddf3|
 ldmia r9, {r2, r3}
 eor r0, r0, #1<<31
 bl |__adddf3|      ; -a + b
 stmia r9, {r0, r1}
 ldr r15, [r13], #4

 END

