some quesion about assembly when calling fork

loody miloody at gmail.com
Wed Sep 16 10:23:40 EDT 2009


Dear all:
i copy the assembly code as below, I use uclibc.

       if ((pid = fork()) < 0) {
    84b4:       ebffffb5        bl      8390 <.text-0x48>
    84b8:       e1a03000        mov     r3, r0
    84bc:       e50b3010        str     r3, [fp, #-16]    xx1
    84c0:       e51b3010        ldr     r3, [fp, #-16]    xx2
    84c4:       e3530000        cmp     r3, #0  ; 0x0
    84c8:       aa000002        bge     84d8 <main+0x3c>
                printf("fork error");
    84cc:       e59f0040        ldr     r0, [pc, #64]   ; 8514 <.text
+0x13c>
    84d0:       ebffffba        bl      83c0 <.text-0x18>
    84d4:       ea00000b        b       8508 <main+0x6c>

why we store r3 and ld it back at the same place in xx1 and xx2.
does that have any relationship with fork?
appreciate your help,
miloody



More information about the linux-arm-kernel mailing list