.arch armv4t .fpu maverick .eabi_attribute 20, 1 .eabi_attribute 21, 1 .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 "fp-cmp-5.c" .text .align 2 .type test_isunordered, %function test_isunordered: @ Function supports interworking. @ args = 0, pretend = 0, frame = 24 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #24 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] mov r3, #0 str r3, [fp, #-32] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 beq .L2 bmi .L2 .L3: mov r3, #1 str r3, [fp, #-32] .L2: ldr r3, [fp, #-32] mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_isunordered, .-test_isunordered .align 2 .type test_not_isunordered, %function test_not_isunordered: @ Function supports interworking. @ args = 0, pretend = 0, frame = 24 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #24 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] mov r3, #0 strb r3, [fp, #-36] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 beq .L6 bmi .L6 .L7: mov r3, #1 strb r3, [fp, #-36] .L6: ldrb r2, [fp, #-36] and r3, r2, #255 eor r3, r3, #1 and r3, r3, #255 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_not_isunordered, .-test_not_isunordered .align 2 .type test_isless, %function test_isless: @ Function supports interworking. @ args = 0, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 movlt r3, #0 movge r3, #1 and r3, r3, #255 eor r3, r3, #1 and r3, r3, #255 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_isless, .-test_isless .align 2 .type test_not_isless, %function test_not_isless: @ Function supports interworking. @ args = 0, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 movlt r3, #0 movge r3, #1 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_not_isless, .-test_not_isless .align 2 .type test_islessequal, %function test_islessequal: @ Function supports interworking. @ args = 0, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 movle r3, #0 movgt r3, #1 and r3, r3, #255 eor r3, r3, #1 and r3, r3, #255 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_islessequal, .-test_islessequal .align 2 .type test_not_islessequal, %function test_not_islessequal: @ Function supports interworking. @ args = 0, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 movle r3, #0 movgt r3, #1 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_not_islessequal, .-test_not_islessequal .align 2 .type test_isgreater, %function test_isgreater: @ Function supports interworking. @ args = 0, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 movvs r3, #0 movvc r3, #1 and r3, r3, #255 eor r3, r3, #1 and r3, r3, #255 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_isgreater, .-test_isgreater .align 2 .type test_not_isgreater, %function test_not_isgreater: @ Function supports interworking. @ args = 0, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 movvs r3, #0 movvc r3, #1 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_not_isgreater, .-test_not_isgreater .align 2 .type test_isgreaterequal, %function test_isgreaterequal: @ Function supports interworking. @ args = 0, pretend = 0, frame = 24 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #24 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] mov r3, #0 strb r3, [fp, #-36] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 beq .L22 bvs .L22 .L23: mov r3, #1 strb r3, [fp, #-36] .L22: ldrb r2, [fp, #-36] and r3, r2, #255 eor r3, r3, #1 and r3, r3, #255 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_isgreaterequal, .-test_isgreaterequal .align 2 .type test_not_isgreaterequal, %function test_not_isgreaterequal: @ Function supports interworking. @ args = 0, pretend = 0, frame = 24 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #24 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] mov r3, #0 str r3, [fp, #-32] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 beq .L26 bvs .L26 .L27: mov r3, #1 str r3, [fp, #-32] .L26: ldr r3, [fp, #-32] mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_not_isgreaterequal, .-test_not_isgreaterequal .align 2 .type test_islessgreater, %function test_islessgreater: @ Function supports interworking. @ args = 0, pretend = 0, frame = 24 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #24 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] mov r3, #0 strb r3, [fp, #-36] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 bmi .L30 .L31: mov r3, #1 strb r3, [fp, #-36] .L30: ldrb r2, [fp, #-36] and r3, r2, #255 eor r3, r3, #1 and r3, r3, #255 mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_islessgreater, .-test_islessgreater .align 2 .type test_not_islessgreater, %function test_not_islessgreater: @ Function supports interworking. @ args = 0, pretend = 0, frame = 24 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #24 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] mov r3, #0 str r3, [fp, #-32] cfldrd mvd1, [fp, #-20] cfldrd mvd0, [fp, #-28] cfcmpd r15, mvd1, mvd0 bmi .L34 .L35: mov r3, #1 str r3, [fp, #-32] .L34: ldr r3, [fp, #-32] mov r0, r3 sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size test_not_islessgreater, .-test_not_islessgreater .align 2 .type one_test, %function one_test: @ Function supports interworking. @ args = 12, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 str r0, [fp, #-20] str r1, [fp, #-16] str r2, [fp, #-28] str r3, [fp, #-24] ldr ip, [fp, #8] sub r0, fp, #20 ldmia r0, {r0-r1} sub r2, fp, #28 ldmia r2, {r2-r3} mov lr, pc bx ip mov r2, r0 ldr r3, [fp, #4] cmp r2, r3 beq .L38 bl abort .L38: ldr ip, [fp, #12] sub r0, fp, #20 ldmia r0, {r0-r1} sub r2, fp, #28 ldmia r2, {r2-r3} mov lr, pc bx ip mov r2, r0 ldr r3, [fp, #4] cmp r3, #0 movne r3, #0 moveq r3, #1 cmp r2, r3 beq .L40 bl abort .L40: sub sp, fp, #12 ldmfd sp, {fp, sp, lr} bx lr .size one_test, .-one_test .section .rodata .align 2 .type tests.1357, %object .size tests.1357, 48 tests.1357: .word test_isunordered .word test_not_isunordered .word test_isless .word test_not_isless .word test_islessequal .word test_not_islessequal .word test_isgreater .word test_not_isgreater .word test_isgreaterequal .word test_not_isgreaterequal .word test_islessgreater .word test_not_islessgreater .align 3 .type data.1349, %object .size data.1349, 240 data.1349: .word 0 .word 2146959360 .word 0 .word 2146959360 .word 1 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 2146959360 .word 1 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 2146959360 .word 0 .word 0 .word 1 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 1 .word 0 .word 1 .word 0 .word 0 .word 1072693248 .word 0 .word 1073741824 .word 0 .word 1 .word 1 .word 0 .word 0 .word 1 .word 0 .word 1073741824 .word 0 .word 1072693248 .word 0 .word 0 .word 0 .word 1 .word 1 .word 1 .text .align 2 .global main .type main, %function main: @ Function supports interworking. @ args = 0, pretend = 0, frame = 16 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #32 mov r3, #6 str r3, [fp, #-40] mov r3, #0 str r3, [fp, #-36] b .L42 .L45: mov r3, #0 str r3, [fp, #-32] b .L43 .L44: ldr r3, [fp, #-36] ldr r1, .L47 mov r3, r3, asl #3 mov r2, r3, asl #2 add r3, r3, r2 add r3, r1, r3 ldmia r3, {r4-r5} @ double ldr r2, [fp, #-36] ldr r1, .L47 mov r3, r2 mov r3, r3, asl #2 add r3, r3, r2 add r3, r3, #1 mov r3, r3, asl #3 add r3, r1, r3 ldmia r3, {r6-r7} @ double ldr r3, [fp, #-36] ldr r1, [fp, #-32] ldr r0, .L47 mov r3, r3, asl #1 mov r2, r3, asl #2 add r3, r3, r2 add r3, r3, r1 add r3, r3, #4 ldr ip, [r0, r3, asl #2] ldr r2, [fp, #-32] ldr r3, .L47+4 ldr r0, [r3, r2, asl #3] ldr r3, [fp, #-32] ldr r2, .L47+4 mov r1, #4 mov r3, r3, asl #3 add r3, r2, r3 add r3, r3, r1 ldr r3, [r3, #0] str ip, [sp, #0] str r0, [sp, #4] str r3, [sp, #8] mov r0, r4 mov r1, r5 mov r2, r6 mov r3, r7 bl one_test ldr r3, [fp, #-32] add r3, r3, #1 str r3, [fp, #-32] .L43: ldr r3, [fp, #-32] cmp r3, #5 ble .L44 ldr r3, [fp, #-36] add r3, r3, #1 str r3, [fp, #-36] .L42: ldr r2, [fp, #-36] ldr r3, [fp, #-40] cmp r2, r3 blt .L45 mov r0, #0 bl exit .L48: .align 2 .L47: .word data.1349 .word tests.1357 .size main, .-main .ident "GCC: (GNU) 4.3.2" .section .note.GNU-stack,"",%progbits