Question: Given the following C code: long rfun(unsigned long x){ if ( x == 0 ) return 0; unsigned long nx = x >> 2; long

Given the following C code: long rfun(unsigned long x){ if ( x == 0 ) return 0; unsigned long nx = x >> 2; long rv = rfun(nx); return x + rv; } Fill in the blanks by dragging the appropriate entries below: rfun: movl $0, Seax pusha mova srbx rdi, Srbx call rfun popa srbx .L6: rep ret imulq %rdi, %rax unsigned int imulq %rbx, %rax testl %edi, %edi subq %rax, %rbx || addq %rbx, %rax testq %rdi, %rdi cmpg $100, rdi shra $2%rdi sarl $2,%edi shrl $2,%edi sarg $2 %rdi leaq (%rdi,%rdi), %rdi je.L6 sarg $3, %rdi ja .L6 js.L6 Given the following C code: long rfun(unsigned long x){ if ( x == 0 ) return 0; unsigned long nx = x >> 2; long rv = rfun(nx); return x + rv; } Fill in the blanks by dragging the appropriate entries below: rfun: movl $0, Seax pusha mova srbx rdi, Srbx call rfun popa srbx .L6: rep ret imulq %rdi, %rax unsigned int imulq %rbx, %rax testl %edi, %edi subq %rax, %rbx || addq %rbx, %rax testq %rdi, %rdi cmpg $100, rdi shra $2%rdi sarl $2,%edi shrl $2,%edi sarg $2 %rdi leaq (%rdi,%rdi), %rdi je.L6 sarg $3, %rdi ja .L6 js.L6
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
