All pastes #562342 Raw Edit

Stuff

public text v1 · immutable
·published 2007-06-12 19:24 UTC
rendered paste body
func callforward{ a b c }
        x = 123;
        return callback{ 1 (a * b) (x - c)};
end;

        .globl callforward
        .ent callforward
callforward:
        .eflag 48
        .frame $30, 0, $26, 0
        .prologue 0
        ldgp $29, 0($27)

        subq      $30, 24, $30
        stq   $9,    0($30)
        mov   $16,    $9
        stq   $10,    8($30)
        mov   $17,    $10
        stq   $11,    16($30)
        mov   $18,    $11
        mov     123,    $2
        subq  $30, 16, $30
        stq   $1,     16($30)
        stq   $2,     8($30)
        /* param calc start */
        mov     1,      $16
        mulq    $9,     $10,     $17
        subq    $2,     $11,     $18
        jsr    $26,    callback
        ldgp $29, 0($26)
        ldq   $2,     8($30)
        ldq   $1,     16($30)
        addq   $30, 16
        jmp func__50__end
func__50__end:
        ldq   $9,    0($30)
        ldq   $10,    8($30)
        ldq   $11,    16($30)
        addq      $30, 24, $30
        /*1 registers used in statements, 1 local vars*/
.end callforward



long callback(long a, long b, long c)
{
        if(a==1)ok++;
        else
        {
                printf("Error in callforward. a = %d\n", a);
                exit(1);
        }
        if(b == c_b * c_a) ok++;
        else
        {
                printf("error in callforward. b = %ld, expected %ld\n",  b, c_b$
                exit(1);
        }
        if(c == 123-c_c) ok++;
        else
        {
                printf("error in callforward. c = %d, expected %d\n", c, 123-c_$
                exit(1);
        }
return 12345;
}