Thank you Robert and Steve for the response.
I think I understand how SLL works.My question was in regards to how to differentiate between BZ and BP in scenarios when the register content becomes zero as a bit is shifted left.
In the example that I gave earlier
"Suppose R9 has a value of 2^31. i.e. 10000000 00000000 00000000 00000000).Here the 1-bit(sign bit is 1)(bit 32 of 64 bit register) so the number is negative.So both BZ and BP are skipped..
But imagine that piece of code is called in a loop so during the next iteration this bit 1 is discarded and the contents in that register will have a value of zero. My question is at this point whether BZ would be executed or the BP ?
I think
BZ would be executed since I think 0 is not positive.But I haven't got a confirmation on this after reading the POP manual..
Below is explanation of LTR from POP.
"
The second operand is placed unchanged at the first-operand location, except that, for LOAD AND
TEST (LTGFR), it is sign extended. The sign and
magnitude of the second operand, treated as a
signed binary integer, are indicated in the condition
code.
Resulting Condition Code:
0 Result zero
1 Result less than zero
2 Result greater than zero
3 -- "
The reason I ask this is I was thinking about difference of getting a value of zero after 32 iterations of SLL and in scenarios where the register value become zero just after a few execution of SLL based on the contents of the register.
I'm not very sure if I was able to convey my question clearly.
Thanks.