I came across a question while preparing for an exam. The question is
Consider the following y86 code snippet when answering the following questions about implementation of the conditional jump in the 5 stage pipeline presented in class, with stages F, D, E, M, WB.
1: irmovq $8, %rsi
2: irmovq $1, %r9
3: jmp label1
4: label2: addq %rsi, %r10
5: label1: subq %r9, %rsi
6: jne label2
7: andq %rbx, %rdx
8: irmovq $10, %r10
9: halt
a. When the jne instruction has completed the F stage, is the address of the next instruction available in the processor? Circle one
YES NO
b. If the processor assumes the conditional jump is TAKEN, in which pipeline internal register (variable) is the address of the next instruction when the jne instruction finishes the F stage? Circle one icode ifun rA rB valC valP valM valE
c. If the processor assumes the conditional jump is NOT TAKEN, in which pipeline internal register (variable) is the address of the next instruction when the jne instruction finishes the F stage? Circle one
icode ifun rA rB valC valP valM valE
d. After which stage will the pipeline know whether the conditional jump should be taken or not? Circle the correct stage
F D E M WB
I have the answers without explanation Here are the answers:
1) YES
2) valC
3) valP
4) E
Can someone PLEASE, PLEASE explain the process. I have an exam and I really need help.