.cpu ep9312 .fpu maverick .eabi_attribute 23, 3 .eabi_attribute 24, 1 .eabi_attribute 25, 1 .eabi_attribute 26, 2 .eabi_attribute 30, 6 .eabi_attribute 18, 4 .file "negsdf.c" .global failed .bss .align 2 .type failed, %object .size failed, 4 failed: .space 4 .text .align 2 .global check_float .type check_float, %function check_float: @ Function supports interworking. @ args = 0, pretend = 0, frame = 8 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #8 ldr r2, .L10 mov r3, #1 str r3, [r2, #0] ldr r3, .L10 ldr r3, [r3, #0] @ float cfmvsr mvf3, r3 ldr r2, .L10 mov r3, #-2147483647 str r3, [r2, #0] ldr r3, .L10 ldr r3, [r3, #0] @ float cfmvsr mvf4, r3 cfmvrs r3, mvf3 eor r3, r3, #-2147483648 cfcpys mvf0, mvf4 cfmvsr mvf1, r3 cfcmps r15, mvf1, mvf0 beq .L2 .L7: ldr r3, .L10+4 ldr r3, [r3, #0] add r2, r3, #1 ldr r3, .L10+4 str r2, [r3, #0] .L2: cfmvrs r3, mvf4 eor r3, r3, #-2147483648 cfcpys mvf0, mvf3 cfmvsr mvf1, r3 cfcmps r15, mvf1, mvf0 beq .L9 .L8: ldr r3, .L10+4 ldr r3, [r3, #0] add r2, r3, #1 ldr r3, .L10+4 str r2, [r3, #0] .L9: sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .L11: .align 2 .L10: .word uf .word failed .size check_float, .-check_float .align 2 .global check_double .type check_double, %function check_double: @ Function supports interworking. @ args = 0, pretend = 0, frame = 8 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {r4, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #12 ldr r2, .L21+8 mov r3, #1 mov r4, #0 stmia r2, {r3-r4} ldr r3, .L21+8 ldmia r3, {r3-r4} @ double cfmvdlr mvd3, r3 cfmvdhr mvd3, r4 ldr r2, .L21+8 adr r3, .L21 ldmia r3, {r3-r4} stmia r2, {r3-r4} ldr r3, .L21+8 ldmia r3, {r3-r4} @ double cfmvdlr mvd4, r3 cfmvdhr mvd4, r4 cfcpyd mvd0, mvd3 cfnegd mvd1, mvd0 cfcpyd mvd0, mvd4 cfcmpd r15, mvd1, mvd0 beq .L13 .L18: ldr r3, .L21+12 ldr r3, [r3, #0] add r2, r3, #1 ldr r3, .L21+12 str r2, [r3, #0] .L13: cfcpyd mvd0, mvd4 cfnegd mvd1, mvd0 cfcpyd mvd0, mvd3 cfcmpd r15, mvd1, mvd0 beq .L20 .L19: ldr r3, .L21+12 ldr r3, [r3, #0] add r2, r3, #1 ldr r3, .L21+12 str r2, [r3, #0] .L20: sub sp, fp, #16 ldmfd sp, {r4, fp, sp, lr} bx lr .L22: .align 3 .L21: .word 1 .word -2147483648 .word ud .word failed .size check_double, .-check_double .align 2 .global main .type main, %function main: @ Function supports interworking. @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 bl check_float bl check_double ldr r3, .L26 ldr r3, [r3, #0] cmp r3, #0 beq .L24 bl abort .L24: mov r0, #0 bl exit .L27: .align 2 .L26: .word failed .size main, .-main .comm uf,4,4 .comm ud,8,8 .ident "GCC: (GNU) 4.3.2" .section .note.GNU-stack,"",%progbits