// File: pdx-cs-tutors[P]pdp/tests/lll/lll_removal_tests.cpp
// Function: LLLRemovalTests::LLLRemovalTests()
LLLRemovalTests::LLLRemovalTests() {
    test("remove", [=] {
        call = "remove(head, 8)";
        initialize({3, 8, 1, 4});
        retval = new int(remove(head, 8));
        expectList({3, 1, 4});
        expectReturn(1);
    });
    test("remove", [=] {
        call = "remove(head, 6)";
        initialize({9, 9, 4});
        retval = new int(remove(head, 6));
        expectList({9, 9, 4});
        expectReturn(0);
    });
    test("remove", [=] {
        call = "remove(head, 6)";
        initialize({1, 2, 6});
        retval = new int(remove(head, 6));
        expectList({1, 2});
        expectReturn(1);
    });
    test("remove", [=] {
        call = "remove(head, 6)";
        initialize({6, 1, 2, 6});
        retval = new int(remove(head, 6));
        expectList({1, 2, 6});
        expectReturn(1);
    });
    test("remove", [=] {
        call = "remove(head, 4)";
        retval = new int(remove(head, 4));
        expectList({});
        expectReturn(0);
    });

    test("remove_all", [=] {
        call = "remove_all(head, 8)";
        initialize({3, 8, 1, 4});
        retval = new int(remove_all(head, 8));
        expectList({3, 1, 4});
        expectReturn(1);
    });
    test("remove_all", [=] {
        call = "remove_all(head, 9)";
        initialize({9, 9, 4});
        retval = new int(remove_all(head, 9));
        expectList({4});
        expectReturn(2);
    });
    test("remove_all", [=] {
        call = "remove_all(head, 6)";
        initialize({1, 2, 6, 6});
        retval = new int(remove_all(head, 6));
        expectList({1, 2});
        expectReturn(2);
    });
    test("remove_all", [=] {
        call = "remove_all(head, 6)";
        initialize({6, 1, 2, 6});
        retval = new int(remove_all(head, 6));
        expectList({1, 2});
        expectReturn(2);
    });
    test("remove_all", [=] {
        call = "remove_all(head, 4)";
        retval = new int(remove_all(head, 4));
        expectList({});
        expectReturn(0);
    });

    test("remove_evens", [=] {
        call = "remove_evens(head)";
        retval = new int(remove_evens(head));
        expectList({});
        expectReturn(0);
    });
    test("remove_evens", [=] {
        call = "remove_evens(head)";
        initialize({2, 4, 6, 8});
        retval = new int(remove_evens(head));
        expectList({});
        expectReturn(4);
    });
    test("remove_evens", [=] {
        call = "remove_evens(head)";
        initialize({2, 3, 6, 7});
        retval = new int(remove_evens(head));
        expectList({3, 7});
        expectReturn(2);
    });
    test("remove_evens", [=] {
        call = "remove_evens(head)";
        initialize({1, 3, 5, 7});
        retval = new int(remove_evens(head));
        expectList({1, 3, 5, 7});
        expectReturn(0);
    });
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x560, %rsp            # imm = 0x560
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x488(%rbp)
callq 0x204b0
movq -0x488(%rbp), %rax
movq 0x2137b(%rip), %rcx     # 0x58f48
addq $0x10, %rcx
movq %rcx, (%rax)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x20560
movq -0x480(%rbp), %rdx
leaq 0xbb47(%rip), %rsi      # 0x43739
leaq -0x28(%rbp), %rdi
callq 0x1fc60
jmp 0x37bfd
movq -0x488(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
movq %rdi, -0x490(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x387f0
movq -0x488(%rbp), %rdi
movq -0x490(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rsi
callq *%rax
jmp 0x37c39
leaq -0x60(%rbp), %rdi
callq 0x1e710
leaq -0x28(%rbp), %rdi
callq 0x1eba0
leaq -0x29(%rbp), %rdi
callq 0x1f620
leaq -0x89(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x20560
movq -0x498(%rbp), %rdx
leaq 0xbac4(%rip), %rsi      # 0x43739
leaq -0x88(%rbp), %rdi
callq 0x1fc60
jmp 0x37c83
movq -0x488(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x4a0(%rbp)
leaq -0xb8(%rbp), %rsi
callq 0x38880
movq -0x488(%rbp), %rdi
movq -0x4a0(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x88(%rbp), %rsi
callq *%rax
jmp 0x37ccb
leaq -0xb0(%rbp), %rdi
callq 0x1e710
leaq -0x88(%rbp), %rdi
callq 0x1eba0
leaq -0x89(%rbp), %rdi
callq 0x1f620
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x20560
movq -0x4a8(%rbp), %rdx
leaq 0xba29(%rip), %rsi      # 0x43739
leaq -0xd8(%rbp), %rdi
callq 0x1fc60
jmp 0x37d1e
movq -0x488(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq -0x100(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
leaq -0x108(%rbp), %rsi
callq 0x38910
movq -0x488(%rbp), %rdi
movq -0x4b0(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0xd8(%rbp), %rsi
callq *%rax
jmp 0x37d66
leaq -0x100(%rbp), %rdi
callq 0x1e710
leaq -0xd8(%rbp), %rdi
callq 0x1eba0
leaq -0xd9(%rbp), %rdi
callq 0x1f620
leaq -0x129(%rbp), %rdi
movq %rdi, -0x4b8(%rbp)
callq 0x20560
movq -0x4b8(%rbp), %rdx
leaq 0xb98e(%rip), %rsi      # 0x43739
leaq -0x128(%rbp), %rdi
callq 0x1fc60
jmp 0x37db9
movq -0x488(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0x150(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
leaq -0x158(%rbp), %rsi
callq 0x389a0
movq -0x488(%rbp), %rdi
movq -0x4c0(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x128(%rbp), %rsi
callq *%rax
jmp 0x37e01
leaq -0x150(%rbp), %rdi
callq 0x1e710
leaq -0x128(%rbp), %rdi
callq 0x1eba0
leaq -0x129(%rbp), %rdi
callq 0x1f620
leaq -0x179(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0x20560
movq -0x4c8(%rbp), %rdx
leaq 0xb8f3(%rip), %rsi      # 0x43739
leaq -0x178(%rbp), %rdi
callq 0x1fc60
jmp 0x37e54
movq -0x488(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0x1a0(%rbp), %rdi
movq %rdi, -0x4d0(%rbp)
leaq -0x1a8(%rbp), %rsi
callq 0x38a30
movq -0x488(%rbp), %rdi
movq -0x4d0(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x178(%rbp), %rsi
callq *%rax
jmp 0x37e9c
leaq -0x1a0(%rbp), %rdi
callq 0x1e710
leaq -0x178(%rbp), %rdi
callq 0x1eba0
leaq -0x179(%rbp), %rdi
callq 0x1f620
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x20560
movq -0x4d8(%rbp), %rdx
leaq 0xb85f(%rip), %rsi      # 0x43740
leaq -0x1c8(%rbp), %rdi
callq 0x1fc60
jmp 0x37eef
movq -0x488(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x1f0(%rbp), %rdi
movq %rdi, -0x4e0(%rbp)
leaq -0x1f8(%rbp), %rsi
callq 0x38ac0
movq -0x488(%rbp), %rdi
movq -0x4e0(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x1c8(%rbp), %rsi
callq *%rax
jmp 0x37f37
leaq -0x1f0(%rbp), %rdi
callq 0x1e710
leaq -0x1c8(%rbp), %rdi
callq 0x1eba0
leaq -0x1c9(%rbp), %rdi
callq 0x1f620
leaq -0x219(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x20560
movq -0x4e8(%rbp), %rdx
leaq 0xb7c4(%rip), %rsi      # 0x43740
leaq -0x218(%rbp), %rdi
callq 0x1fc60
jmp 0x37f8a
movq -0x488(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x240(%rbp), %rdi
movq %rdi, -0x4f0(%rbp)
leaq -0x248(%rbp), %rsi
callq 0x38b50
movq -0x488(%rbp), %rdi
movq -0x4f0(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x218(%rbp), %rsi
callq *%rax
jmp 0x37fd2
leaq -0x240(%rbp), %rdi
callq 0x1e710
leaq -0x218(%rbp), %rdi
callq 0x1eba0
leaq -0x219(%rbp), %rdi
callq 0x1f620
leaq -0x269(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x20560
movq -0x4f8(%rbp), %rdx
leaq 0xb729(%rip), %rsi      # 0x43740
leaq -0x268(%rbp), %rdi
callq 0x1fc60
jmp 0x38025
movq -0x488(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x290(%rbp), %rdi
movq %rdi, -0x500(%rbp)
leaq -0x298(%rbp), %rsi
callq 0x38be0
movq -0x488(%rbp), %rdi
movq -0x500(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x268(%rbp), %rsi
callq *%rax
jmp 0x3806d
leaq -0x290(%rbp), %rdi
callq 0x1e710
leaq -0x268(%rbp), %rdi
callq 0x1eba0
leaq -0x269(%rbp), %rdi
callq 0x1f620
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x20560
movq -0x508(%rbp), %rdx
leaq 0xb68e(%rip), %rsi      # 0x43740
leaq -0x2b8(%rbp), %rdi
callq 0x1fc60
jmp 0x380c0
movq -0x488(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x2e0(%rbp), %rdi
movq %rdi, -0x510(%rbp)
leaq -0x2e8(%rbp), %rsi
callq 0x38c70
movq -0x488(%rbp), %rdi
movq -0x510(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x2b8(%rbp), %rsi
callq *%rax
jmp 0x38108
leaq -0x2e0(%rbp), %rdi
callq 0x1e710
leaq -0x2b8(%rbp), %rdi
callq 0x1eba0
leaq -0x2b9(%rbp), %rdi
callq 0x1f620
leaq -0x309(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0x20560
movq -0x518(%rbp), %rdx
leaq 0xb5f3(%rip), %rsi      # 0x43740
leaq -0x308(%rbp), %rdi
callq 0x1fc60
jmp 0x3815b
movq -0x488(%rbp), %rax
movq %rax, -0x338(%rbp)
leaq -0x330(%rbp), %rdi
movq %rdi, -0x520(%rbp)
leaq -0x338(%rbp), %rsi
callq 0x38d00
movq -0x488(%rbp), %rdi
movq -0x520(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x308(%rbp), %rsi
callq *%rax
jmp 0x381a3
leaq -0x330(%rbp), %rdi
callq 0x1e710
leaq -0x308(%rbp), %rdi
callq 0x1eba0
leaq -0x309(%rbp), %rdi
callq 0x1f620
leaq -0x359(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x20560
movq -0x528(%rbp), %rdx
leaq 0xb563(%rip), %rsi      # 0x4374b
leaq -0x358(%rbp), %rdi
callq 0x1fc60
jmp 0x381f6
movq -0x488(%rbp), %rax
movq %rax, -0x388(%rbp)
leaq -0x380(%rbp), %rdi
movq %rdi, -0x530(%rbp)
leaq -0x388(%rbp), %rsi
callq 0x38d90
movq -0x488(%rbp), %rdi
movq -0x530(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x358(%rbp), %rsi
callq *%rax
jmp 0x3823e
leaq -0x380(%rbp), %rdi
callq 0x1e710
leaq -0x358(%rbp), %rdi
callq 0x1eba0
leaq -0x359(%rbp), %rdi
callq 0x1f620
leaq -0x3a9(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x20560
movq -0x538(%rbp), %rdx
leaq 0xb4c8(%rip), %rsi      # 0x4374b
leaq -0x3a8(%rbp), %rdi
callq 0x1fc60
jmp 0x38291
movq -0x488(%rbp), %rax
movq %rax, -0x3d8(%rbp)
leaq -0x3d0(%rbp), %rdi
movq %rdi, -0x540(%rbp)
leaq -0x3d8(%rbp), %rsi
callq 0x38e20
movq -0x488(%rbp), %rdi
movq -0x540(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x3a8(%rbp), %rsi
callq *%rax
jmp 0x382d9
leaq -0x3d0(%rbp), %rdi
callq 0x1e710
leaq -0x3a8(%rbp), %rdi
callq 0x1eba0
leaq -0x3a9(%rbp), %rdi
callq 0x1f620
leaq -0x3f9(%rbp), %rdi
movq %rdi, -0x548(%rbp)
callq 0x20560
movq -0x548(%rbp), %rdx
leaq 0xb42d(%rip), %rsi      # 0x4374b
leaq -0x3f8(%rbp), %rdi
callq 0x1fc60
jmp 0x3832c
movq -0x488(%rbp), %rax
movq %rax, -0x428(%rbp)
leaq -0x420(%rbp), %rdi
movq %rdi, -0x550(%rbp)
leaq -0x428(%rbp), %rsi
callq 0x38eb0
movq -0x488(%rbp), %rdi
movq -0x550(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x3f8(%rbp), %rsi
callq *%rax
jmp 0x38374
leaq -0x420(%rbp), %rdi
callq 0x1e710
leaq -0x3f8(%rbp), %rdi
callq 0x1eba0
leaq -0x3f9(%rbp), %rdi
callq 0x1f620
leaq -0x449(%rbp), %rdi
movq %rdi, -0x558(%rbp)
callq 0x20560
movq -0x558(%rbp), %rdx
leaq 0xb392(%rip), %rsi      # 0x4374b
leaq -0x448(%rbp), %rdi
callq 0x1fc60
jmp 0x383c7
movq -0x488(%rbp), %rax
movq %rax, -0x478(%rbp)
leaq -0x470(%rbp), %rdi
movq %rdi, -0x560(%rbp)
leaq -0x478(%rbp), %rsi
callq 0x38f40
movq -0x488(%rbp), %rdi
movq -0x560(%rbp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x448(%rbp), %rsi
callq *%rax
jmp 0x3840f
leaq -0x470(%rbp), %rdi
callq 0x1e710
leaq -0x448(%rbp), %rdi
callq 0x1eba0
leaq -0x449(%rbp), %rdi
callq 0x1f620
addq $0x560, %rsp            # imm = 0x560
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38468
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x1e710
leaq -0x28(%rbp), %rdi
callq 0x1eba0
leaq -0x29(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x384a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x1e710
leaq -0x88(%rbp), %rdi
callq 0x1eba0
leaq -0x89(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x384eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x1e710
leaq -0xd8(%rbp), %rdi
callq 0x1eba0
leaq -0xd9(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3852e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x1e710
leaq -0x128(%rbp), %rdi
callq 0x1eba0
leaq -0x129(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x1e710
leaq -0x178(%rbp), %rdi
callq 0x1eba0
leaq -0x179(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x385b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x1e710
leaq -0x1c8(%rbp), %rdi
callq 0x1eba0
leaq -0x1c9(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x385f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x1e710
leaq -0x218(%rbp), %rdi
callq 0x1eba0
leaq -0x219(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3863a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x1e710
leaq -0x268(%rbp), %rdi
callq 0x1eba0
leaq -0x269(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3867d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x1e710
leaq -0x2b8(%rbp), %rdi
callq 0x1eba0
leaq -0x2b9(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x386c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x1e710
leaq -0x308(%rbp), %rdi
callq 0x1eba0
leaq -0x309(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38703
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x1e710
leaq -0x358(%rbp), %rdi
callq 0x1eba0
leaq -0x359(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38746
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x1e710
leaq -0x3a8(%rbp), %rdi
callq 0x1eba0
leaq -0x3a9(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38786
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x1e710
leaq -0x3f8(%rbp), %rdi
callq 0x1eba0
leaq -0x3f9(%rbp), %rdi
callq 0x1f620
jmp 0x387d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x387c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x1e710
leaq -0x448(%rbp), %rdi
callq 0x1eba0
leaq -0x449(%rbp), %rdi
callq 0x1f620
movq -0x488(%rbp), %rdi
callq 0x201f0
movq -0x38(%rbp), %rdi
callq 0x20540
nopw (%rax,%rax)