// File: /workspace/github_c_makefile_star2_O0/pahihu[P]mixal/run.c
// Function: print_CPU_trace
void print_CPU_trace(Flag header)
{
    Byte I = 0;
    Cell instruction;
    const char *mnemo;
    
    IGNORE_VALUE(I);

    if (header) {
        printf ("  LOC FREQ INSTRUCTION OP    OPERAND   |  REGISTER A  REGISTER X  RI1   RI2   RI3   RI4   RI5   RI6   RJ   VCS   TYME\n");
        // printf ("+1000 0001 +1234567890 JBUS +1234567890| +1234567890 +1234567890 +0000 +0000 +0000 +0000 +0000 +0000 +1007 XEC 00014435\n");
        return;
    }

    instruction = safe_fetch(pc);
    destructure_cell(instruction, M, I, F, C);
    print_pc();
    printf (" %04d ", fetch_frequency(pc));
    print_cell (instruction);
    mnemo = mnemonic (C, F);
    printf (" %-4s ", mnemo);
    print_cell (M);
    printf ("| ");
    print_cell (r[A]);
    printf (" ");
    print_cell (r[X]);
    {
        unsigned i;
        for (i = 1; i <= 6; ++i)
        printf (" %s", index_to_string (r[i]));
    }
    printf (" %s", index_to_string (r[J]));
    printf (" %c%c%c ", " X"[overflow ? 1: 0],
               "LEG"[1 + SIGN(comparison_indicator)],
                        " C"[control_state == internal_state ? 1 : 0]);
    printf (" %08lu\n", elapsed_time);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x4(%rbp)
movl $0x0, -0x8(%rbp)
cmpl $0x0, -0x4(%rbp)
je 0x929b
leaq 0x3d24(%rip), %rdi      # 0xcfb3
movb $0x0, %al
callq 0x30f0
jmp 0x94a9
movl 0xab2f(%rip), %edi      # 0x13dd0
callq 0x94b0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
andq $0x40000000, %rax       # imm = 0x40000000
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
andq $0x3f, %rax
movl %eax, 0xab3a(%rip)      # 0x13e08
movq -0x20(%rbp), %rax
sarq $0x6, %rax
movq %rax, -0x20(%rbp)
andq $0x3f, %rax
movl %eax, 0xab28(%rip)      # 0x13e0c
movq -0x20(%rbp), %rax
sarq $0x6, %rax
movq %rax, -0x20(%rbp)
andq $0x3f, %rax
movl %eax, -0x8(%rbp)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
sarq $0x6, %rcx
andq $0xfff, %rcx            # imm = 0xFFF
orq %rcx, %rax
movq %rax, 0xaafc(%rip)      # 0x13e10
callq 0x8e50
movl 0xaab1(%rip), %edi      # 0x13dd0
callq 0x94f0
movl %eax, %esi
leaq 0x3cfd(%rip), %rdi      # 0xd02a
movb $0x0, %al
callq 0x30f0
movq -0x10(%rbp), %rdi
callq 0x4620
movl 0xaac5(%rip), %edi      # 0x13e08
movl 0xaac3(%rip), %esi      # 0x13e0c
callq 0x91b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x3cd4(%rip), %rdi      # 0xd031
movb $0x0, %al
callq 0x30f0
movq 0xaaa5(%rip), %rdi      # 0x13e10
callq 0x4620
leaq 0x3cc1(%rip), %rdi      # 0xd038
movb $0x0, %al
callq 0x30f0
movq 0xa9fb(%rip), %rdi      # 0x13d80
callq 0x4620
leaq 0x34cf(%rip), %rdi      # 0xc860
movb $0x0, %al
callq 0x30f0
movq 0xaa19(%rip), %rdi      # 0x13db8
callq 0x4620
movl $0x1, -0x2c(%rbp)
cmpl $0x6, -0x2c(%rbp)
ja 0x93e2
movl -0x2c(%rbp), %eax
movl %eax, %ecx
leaq 0xa9c3(%rip), %rax      # 0x13d80
movq (%rax,%rcx,8), %rdi
callq 0x4700
movq %rax, %rsi
leaq 0x42a3(%rip), %rdi      # 0xd673
movb $0x0, %al
callq 0x30f0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x93ab
movq 0xa9d7(%rip), %rdi      # 0x13dc0
callq 0x4700
movq %rax, %rsi
leaq 0x427b(%rip), %rdi      # 0xd673
movb $0x0, %al
callq 0x30f0
leaq 0x974a(%rip), %rax      # 0x12b50
movl (%rax), %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movslq %eax, %rcx
leaq 0x3c25(%rip), %rax      # 0xd044
movsbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, 0xa937(%rip)      # 0x13d64
jge 0x9439
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x34(%rbp)
jmp 0x944f
movl 0xa925(%rip), %edx      # 0x13d64
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x0, %edx
cmovgl %ecx, %eax
movl %eax, -0x34(%rbp)
movl -0x30(%rbp), %esi
movl -0x34(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x3be5(%rip), %rax      # 0xd047
movsbl (%rax,%rcx), %edx
movl 0xa8fc(%rip), %edi      # 0x13d68
movl $0x1, %ecx
xorl %eax, %eax
cmpl %edi, %ecx
cmovel %ecx, %eax
movslq %eax, %rcx
leaq 0x3bc9(%rip), %rax      # 0xd04b
movsbl (%rax,%rcx), %ecx
leaq 0x3bae(%rip), %rdi      # 0xd03b
movb $0x0, %al
callq 0x30f0
movq 0xa8b5(%rip), %rsi      # 0x13d50
leaq 0x3bac(%rip), %rdi      # 0xd04e
movb $0x0, %al
callq 0x30f0
addq $0x40, %rsp
popq %rbp
retq
nop