While testing my armhf porting work (which I will send on request, including it
in this mail seems to make it too big for the list to accept) I came across a 
case
where  parameters were passed incorrectly to a function with a large number of
parameters (14 single, 1 double). Initially I thought this was because
of the compilers lack of knowlage of the conflict between double
registers and odd numbered single registers. However looking more
closely this appears not to be the case. The full assembler is attached
and highlights of it are below.

    # Register r0 allocated
Looking at the code it seems that the compiler is loading the constants
    ldr    r0,.Lj14
    # Register r0 released
    # Register s0 allocated
    flds    s0,[r0]
    # Register s0 released
    # Register s20 allocated
    fcpys   s20,s0
    <--snip a load of stuff not involving s20-->
    # Register r0 allocated
    ldr     r0,.Lj54
    # Register r0 released
    # Register s0 allocated
    flds    s0,[r0]
    # Register s0 released
    # Register s20 allocated
    fcpys   s20,s0
    <--snip a load of stuff not involving s20-->
    # Register s20 released
    # Register s13 allocated
    fcpys   s13,s20
    <--snip a load of stuff not involving s20-->
    # Register s20 released
    # Register s3 allocated
    fcpys   s3,s20


Looking at the code it seems that the compiler is loading the constants
into temporary registers and then copying them to the final locations
for passing them to the parameters. However for some reason it is using
S20 to store two different temporary values at the same time. Any idea
what could cause this and how to debug it? S20 is NOT used for passing
parameters to funtions.

I have a hunch it may be a spilling related issue but i've no idea
where to look to confirm/refute that theory.
        .file "testfp.dpr"
# Begin asmlist al_begin

.section .text.b_DEBUGSTART_$P$TESTFP
.globl  DEBUGSTART_$P$TESTFP
        .type   DEBUGSTART_$P$TESTFP,#object
DEBUGSTART_$P$TESTFP:
        .stabs "/testfp/",100,0,0,.Lf3
        .stabs "testfp.dpr",100,0,0,.Lf3
.Lf3:
# End asmlist al_begin
# Begin asmlist al_stabs

.section .data.n_TESTFP
.globl  DEBUGINFO_$P$TESTFP
        .type   DEBUGINFO_$P$TESTFP,#object
DEBUGINFO_$P$TESTFP:
# Defs - Begin unit SYSTEM has index 1
        .stabs "void:t2=2",128,0,0,0
        .stabs "LONGINT:t3=r3;-2147483648;2147483647;",128,0,0,0
        .stabs "DOUBLE:t1=r3;8;0;",128,0,0,0
# Defs - End unit SYSTEM has index 1
# Defs - Begin unit FPINTRES has index 2
# Defs - End unit FPINTRES has index 2
# Defs - Begin unit OBJPAS has index 3
# Defs - End unit OBJPAS has index 3
# Defs - Begin Staticsymtable
# Defs - End Staticsymtable
# Syms - Begin Staticsymtable
        .stabs "D:S1",40,0,6,U_$P$TESTFP_$$_D
# Syms - End Staticsymtable
# End asmlist al_stabs
# Begin asmlist al_procedures

.section .text.n_p$testfp_$$_g0
        .balign 4
.globl  P$TESTFP_$$_G0
        .type   P$TESTFP_$$_G0,#function
P$TESTFP_$$_G0:
        .stabs "G0:F2",36,0,7,P$TESTFP_$$_G0
# Temps allocated between r11-40 and r11-40
        # Register r13,r11,r12 allocated
        .stabs "testfp.dpr",132,0,0,.Lf1
.Lf1:
        .stabn 68,0,7,.Ll1 - P$TESTFP_$$_G0
.Ll1:
# [testfp.dpr]
# [7] procedure g0; begin
        mov     r12,r13
        stmfd   r13!,{r4,r11,r12,r14,r15}
        sub     r11,r12,#4
        # Register r12,r12 released
        sub     r13,r13,#108
        # Register r12 allocated
        mov     r12,#104
        sub     r12,r11,r12
        # Register r12 released
        fstmiad r12,{d8,d9,d10,d11,d12,d13,d14,d15}
        # Register r0 allocated
        .stabn 68,0,8,.Ll2 - P$TESTFP_$$_G0
.Ll2:
# [8] d := zssssssssssssssdd(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
        ldr     r0,.Lj10
        # Register r0 released
        # Register d0 allocated
        fldd    d0,[r0]
        # Register d0 released
        # Register d2 allocated
        fcpyd   d2,d0
        # Register r0 allocated
        ldr     r0,.Lj14
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s20 allocated
        fcpys   s20,s0
        # Register r0 allocated
        ldr     r0,.Lj18
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s12 allocated
        fcpys   s12,s0
        # Register r0 allocated
        ldr     r0,.Lj22
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s28 allocated
        fcpys   s28,s0
        # Register r0 allocated
        ldr     r0,.Lj26
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s10 allocated
        fcpys   s10,s0
        # Register r0 allocated
        ldr     r0,.Lj30
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s22 allocated
        fcpys   s22,s0
        # Register r0 allocated
        ldr     r0,.Lj34
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s8 allocated
        fcpys   s8,s0
        # Register r0 allocated
        ldr     r0,.Lj38
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s6 allocated
        fcpys   s6,s0
        # Register r0 allocated
        ldr     r0,.Lj42
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s2 allocated
        fcpys   s2,s0
        # Register r0 allocated
        ldr     r0,.Lj46
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s16 allocated
        fcpys   s16,s0
        # Register r0 allocated
        ldr     r0,.Lj50
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s18 allocated
        fcpys   s18,s0
        # Register r0 allocated
        ldr     r0,.Lj54
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s20 allocated
        fcpys   s20,s0
        # Register r0 allocated
        ldr     r0,.Lj58
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s24 allocated
        fcpys   s24,s0
        # Register r0 allocated
        ldr     r0,.Lj62
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register s0 released
        # Register s26 allocated
        fcpys   s26,s0
        # Register r0 allocated
        ldr     r0,.Lj66
        # Register r0 released
        # Register s0 allocated
        flds    s0,[r0]
        # Register d2 released
        # Register d7 allocated
        fcpyd   d7,d2
        # Register s20 released
        # Register s13 allocated
        fcpys   s13,s20
        # Register s28 released
        # Register s11 allocated
        fcpys   s11,s28
        # Register s22 released
        # Register s9 allocated
        fcpys   s9,s22
        # Register s6 released
        # Register s7 allocated
        fcpys   s7,s6
        # Register s2 released
        # Register s6 allocated
        fcpys   s6,s2
        # Register s16 released
        # Register s5 allocated
        fcpys   s5,s16
        # Register s18 released
        # Register s4 allocated
        fcpys   s4,s18
        # Register s20 released
        # Register s3 allocated
        fcpys   s3,s20
        # Register s24 released
        # Register s2 allocated
        fcpys   s2,s24
        # Register s26 released
        # Register s1 allocated
        fcpys   s1,s26
        # Register d7,s13,s12,s11,s10,s9,s8,s7,s6,s5,s4,s3,s2,s1,s0 released
        # Register 
r0,r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     zssssssssssssssdd
        # Register 
d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r0,r1,r2,r3,r12,r13,r14
 released
        # Register r0 allocated
        ldr     r0,.Lj67
        # Register d0,r0 released
        fstd    d0,[r0]
        # Register r0 allocated
        .stabn 68,0,9,.Ll3 - P$TESTFP_$$_G0
.Ll3:
# [9] if d=120 then writeln('zssssssssssssssdd pass') else begin 
writeln('zssssssssssssssdd fail d=',d) ; {halt} end;
        ldr     r0,.Lj67
        # Register r0 released
        # Register d1 allocated
        fldd    d1,[r0]
        # Register r0 allocated
        ldr     r0,.Lj72
        # Register r0 released
        # Register d0 allocated
        fldd    d0,[r0]
        # Register d1,d0 released
        fcmpd   d1,d0
        fmstat
        beq     .Lj68
        b       .Lj69
.Lj68:
        # Register 
r0,r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     fpc_get_output
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r1,r2,r3,r12,r13,r14,r0
 released
        # Register r4 allocated
        mov     r4,r0
        # Register r1 allocated
        mov     r1,r4
        # Register r2 allocated
        ldr     r2,.Lj79
        # Register r0 allocated
        mov     r0,#0
        # Register r1,r2 released
        # Register 
r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     fpc_write_text_shortstr
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r0,r1,r2,r3,r12,r13,r14
 released
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     FPC_IOCHECK
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 released
        # Register r0 allocated
        mov     r0,r4
        # Register 
r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     fpc_writeln_end
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r0,r1,r2,r3,r12,r13,r14
 released
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     FPC_IOCHECK
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3,r4 released
        b       .Lj84
.Lj69:
        # Register 
r0,r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     fpc_get_output
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r1,r2,r3,r12,r13,r14,r0
 released
        # Register r4 allocated
        mov     r4,r0
        # Register r1 allocated
        mov     r1,r4
        # Register r2 allocated
        ldr     r2,.Lj91
        # Register r0 allocated
        mov     r0,#0
        # Register r1,r2 released
        # Register 
r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     fpc_write_text_shortstr
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r0,r1,r2,r3,r12,r13,r14
 released
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     FPC_IOCHECK
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 released
        # Register r2 allocated
        ldr     r2,.Lj96
        # Register r1 allocated
        mvn     r1,#0
        # Register r0 allocated
        ldr     r0,.Lj67
        # Register r0 released
        # Register d0 allocated
        fldd    d0,[r0]
        # Register r3 allocated
        mov     r3,r4
        # Register r0 allocated
        mov     r0,#1
        # Register r2,r1,d0,r3 released
        # Register 
r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     fpc_write_text_float
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r0,r1,r2,r3,r12,r13,r14
 released
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     FPC_IOCHECK
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 released
        # Register r0 allocated
        mov     r0,r4
        # Register 
r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     fpc_writeln_end
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r0,r1,r2,r3,r12,r13,r14
 released
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     FPC_IOCHECK
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3,r4 released
.Lj84:
        # Register r0 allocated
        .stabn 68,0,10,.Ll4 - P$TESTFP_$$_G0
.Ll4:
# [10] flush(output);
        ldr     r0,.Lj112
        # Register r0 released
        # Register r1 allocated
        ldr     r1,[r0]
        cmp     r1,#0
        beq     .Lj110
        # Register r0,r2 allocated
        ldr     r2,.Lj113
        # Register r2 released
        ldr     r0,[r2]
        # Register r0,r1 released
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     r1
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 released
        # Register r0 allocated
        b       .Lj111
.Lj110:
        # Register r1 allocated
        ldr     r1,.Lj114
        # Register r1 released
        mov     r0,r1
.Lj111:
        # Register 
r1,r2,r3,r12,r13,r14,d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd
 allocated
        blx     SYSTEM_$$_FLUSH$TEXT
        # Register 
d0,d1,d2,d3,d4,d5,d6,d7,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,mreg32fd,mreg33fd,mreg34fd,mreg35fd,mreg36fd,mreg37fd,mreg38fd,mreg39fd,r0,r1,r2,r3,r12,r13,r14
 released
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     FPC_IOCHECK
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 released
        # Register r12 allocated
        .stabn 68,0,11,.Ll5 - P$TESTFP_$$_G0
.Ll5:
# [11] end;
        mov     r12,#104
        sub     r12,r11,r12
        # Register r12 released
        fldmiad r12,{d8,d9,d10,d11,d12,d13,d14,d15}
        ldmea   r11,{r4,r11,r13,r15}
.Lj10:
        .long   .Lj9
.Lj9:
# value: 0d+1.50000000000000E+001
        .byte   0,0,0,0,0,0,46,64
.Lj14:
        .long   .Lj13
.Lj13:
# value: 0d+1.400000000E+01
        .byte   0,0,96,65
.Lj18:
        .long   .Lj17
.Lj17:
# value: 0d+1.300000000E+01
        .byte   0,0,80,65
.Lj22:
        .long   .Lj21
.Lj21:
# value: 0d+1.200000000E+01
        .byte   0,0,64,65
.Lj26:
        .long   .Lj25
.Lj25:
# value: 0d+1.100000000E+01
        .byte   0,0,48,65
.Lj30:
        .long   .Lj29
.Lj29:
# value: 0d+1.000000000E+01
        .byte   0,0,32,65
.Lj34:
        .long   .Lj33
.Lj33:
# value: 0d+9.000000000E+00
        .byte   0,0,16,65
.Lj38:
        .long   .Lj37
.Lj37:
# value: 0d+8.000000000E+00
        .byte   0,0,0,65
.Lj42:
        .long   .Lj41
.Lj41:
# value: 0d+7.000000000E+00
        .byte   0,0,224,64
.Lj46:
        .long   .Lj45
.Lj45:
# value: 0d+6.000000000E+00
        .byte   0,0,192,64
.Lj50:
        .long   .Lj49
.Lj49:
# value: 0d+5.000000000E+00
        .byte   0,0,160,64
.Lj54:
        .long   .Lj53
.Lj53:
# value: 0d+4.000000000E+00
        .byte   0,0,128,64
.Lj58:
        .long   .Lj57
.Lj57:
# value: 0d+3.000000000E+00
        .byte   0,0,64,64
.Lj62:
        .long   .Lj61
.Lj61:
# value: 0d+2.000000000E+00
        .byte   0,0,0,64
.Lj66:
        .long   .Lj65
.Lj65:
# value: 0d+1.000000000E+00
        .byte   0,0,128,63
.Lj67:
        .long   U_$P$TESTFP_$$_D
.Lj72:
        .long   .Lj70
.Lj70:
# value: 0d+1.20000000000000E+002
        .byte   0,0,0,0,0,0,94,64
.Lj79:
        .long   _$TESTFP$_Ld1
.Lj91:
        .long   _$TESTFP$_Ld2
.Lj96:
        .long   -32767
.Lj112:
        .long   FPC_THREADVAR_RELOCATE
.Lj113:
        .long   U_$SYSTEM_$$_OUTPUT
.Lj114:
        .long   U_$SYSTEM_$$_OUTPUT+4
.Le0:
        .size   P$TESTFP_$$_G0, .Le0 - P$TESTFP_$$_G0
        .stabn 192,0,0,P$TESTFP_$$_G0-P$TESTFP_$$_G0
        .stabn 224,0,0,.Lt2-P$TESTFP_$$_G0
.Lt2:

.section .text.n_main
        .balign 4
.globl  PASCALMAIN
        .type   PASCALMAIN,#function
PASCALMAIN:
.globl  main
        .type   main,#function
main:
        .stabs "main:F2",36,0,5,main
# Temps allocated between r11-40 and r11-40
        # Register r13,r11,r12 allocated
        .stabs "testfp.dpr",132,0,0,.Lf2
.Lf2:
        .stabn 68,0,12,.Ll6 - main
.Ll6:
# [12] begin
        mov     r12,r13
        stmfd   r13!,{r11,r12,r14,r15}
        sub     r11,r12,#4
        # Register r12,r12 released
        sub     r13,r13,#40
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 allocated
        blx     FPC_INITIALIZEUNITS
        # Register r0,r1,r2,r3,r12,r13,r14,f0,f1,f2,f3 released
        # Register r0,r1,r2,r3,r12,r13,r14 allocated
        .stabn 68,0,13,.Ll7 - main
.Ll7:
# [13] g0;
        blx     P$TESTFP_$$_G0
        # Register r0,r1,r2,r3,r12,r13,r14 released
        .stabn 68,0,14,.Ll8 - main
.Ll8:
# [14] end.
        blx     FPC_DO_EXIT
        ldmea   r11,{r11,r13,r15}
.Le1:
        .size   main, .Le1 - main
        .stabn 192,0,0,main-main
        .stabn 224,0,0,.Lt1-main
.Lt1:

.section .text

.section .fpc.n_links
        .long   DEBUGINFO_$P$TESTFP
        .long   DEBUGSTART_$P$TESTFP
        .long   DEBUGEND_$P$TESTFP
# End asmlist al_procedures
# Begin asmlist al_globals

.section .bss
        .balign 8
# [6] var d: double;
        .globl U_$P$TESTFP_$$_D
        .type U_$P$TESTFP_$$_D,%object
        .size U_$P$TESTFP_$$_D,8
U_$P$TESTFP_$$_D:
        .zero 8

.section .data.n_THREADVARLIST_$P$TESTFP
        .balign 4
.globl  THREADVARLIST_$P$TESTFP
        .type   THREADVARLIST_$P$TESTFP,#object
THREADVARLIST_$P$TESTFP:
        .long   0
# [15] 
.Le2:
        .size   THREADVARLIST_$P$TESTFP, .Le2 - THREADVARLIST_$P$TESTFP

.section .data.n_INITFINAL
        .balign 4
.globl  INITFINAL
        .type   INITFINAL,#object
INITFINAL:
        .long   2,0
        .long   INIT$_$SYSTEM
        .long   0,0
        .long   FINALIZE$_$OBJPAS
.Le3:
        .size   INITFINAL, .Le3 - INITFINAL

.section .data.n_FPC_THREADVARTABLES
        .balign 4
.globl  FPC_THREADVARTABLES
        .type   FPC_THREADVARTABLES,#object
FPC_THREADVARTABLES:
        .long   3
        .long   THREADVARLIST_$SYSTEM
        .long   THREADVARLIST_$OBJPAS
        .long   THREADVARLIST_$P$TESTFP
.Le4:
        .size   FPC_THREADVARTABLES, .Le4 - FPC_THREADVARTABLES

.section .data.n_FPC_RESOURCESTRINGTABLES
        .balign 4
.globl  FPC_RESOURCESTRINGTABLES
        .type   FPC_RESOURCESTRINGTABLES,#object
FPC_RESOURCESTRINGTABLES:
        .long   0
.Le5:
        .size   FPC_RESOURCESTRINGTABLES, .Le5 - FPC_RESOURCESTRINGTABLES

.section .data.n_FPC_WIDEINITTABLES
        .balign 4
.globl  FPC_WIDEINITTABLES
        .type   FPC_WIDEINITTABLES,#object
FPC_WIDEINITTABLES:
        .long   0
.Le6:
        .size   FPC_WIDEINITTABLES, .Le6 - FPC_WIDEINITTABLES

.section .data.n_FPC_RESSTRINITTABLES
        .balign 4
.globl  FPC_RESSTRINITTABLES
        .type   FPC_RESSTRINITTABLES,#object
FPC_RESSTRINITTABLES:
        .long   0
.Le7:
        .size   FPC_RESSTRINITTABLES, .Le7 - FPC_RESSTRINITTABLES

.section .fpc.n_version
        .balign 8
        .ascii  "FPC 2.7.1 [2012/03/17] for arm - Linux"

.section .data.n___stklen
        .balign 4
.globl  __stklen
        .type   __stklen,#object
__stklen:
        .long   8388608

.section .data.n___heapsize
        .balign 4
.globl  __heapsize
        .type   __heapsize,#object
__heapsize:
        .long   0

.section .data.n___fpc_valgrind
.globl  __fpc_valgrind
        .type   __fpc_valgrind,#object
__fpc_valgrind:
        .byte   0

.section .data.n_FPC_RESLOCATION
        .balign 4
.globl  FPC_RESLOCATION
        .type   FPC_RESLOCATION,#object
FPC_RESLOCATION:
        .long   0
# End asmlist al_globals
# Begin asmlist al_const
# End asmlist al_const
# Begin asmlist al_typedconsts

.section .rodata.n__$TESTFP$_Ld1
        .balign 4
.globl  _$TESTFP$_Ld1
_$TESTFP$_Ld1:
        .ascii  "\026zssssssssssssssdd pass\000"

.section .rodata.n__$TESTFP$_Ld2
        .balign 4
.globl  _$TESTFP$_Ld2
_$TESTFP$_Ld2:
        .ascii  "\031zssssssssssssssdd fail d=\000"
# End asmlist al_typedconsts
# Begin asmlist al_rotypedconsts
# End asmlist al_rotypedconsts
# Begin asmlist al_threadvars
# End asmlist al_threadvars
# Begin asmlist al_imports
# End asmlist al_imports
# Begin asmlist al_exports
# End asmlist al_exports
# Begin asmlist al_resources
# End asmlist al_resources
# Begin asmlist al_rtti
# End asmlist al_rtti
# Begin asmlist al_dwarf_frame
# End asmlist al_dwarf_frame
# Begin asmlist al_dwarf_info
# End asmlist al_dwarf_info
# Begin asmlist al_dwarf_abbrev
# End asmlist al_dwarf_abbrev
# Begin asmlist al_dwarf_line
# End asmlist al_dwarf_line
# Begin asmlist al_picdata
# End asmlist al_picdata
# Begin asmlist al_resourcestrings
# End asmlist al_resourcestrings
# Begin asmlist al_objc_data
# End asmlist al_objc_data
# Begin asmlist al_objc_pools
# End asmlist al_objc_pools
# Begin asmlist al_end

.section .text.z_DEBUGEND_$P$TESTFP
.globl  DEBUGEND_$P$TESTFP
        .type   DEBUGEND_$P$TESTFP,#object
DEBUGEND_$P$TESTFP:
        .stabs "",100,0,0,.Lf4
.Lf4:
# End asmlist al_end
.section .note.GNU-stack,"",%progbits


program testfp;
{$linklib gcc}
{$linklib c}
{$link testfpfunctions}
function 
zssssssssssssssdd(a:single;b:single;c:single;d:single;e:single;f:single;g:single;h:single;i:single;j:single;k:single;l:single;m:single;n:single;o:double):double;cdecl;external;
var d: double;
procedure g0; begin
d := zssssssssssssssdd(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
if d=120 then writeln('zssssssssssssssdd pass') else begin 
writeln('zssssssssssssssdd fail d=',d) ; {halt} end;
flush(output);
end;
begin
g0;
end.

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to