35.3.6.2. INTEGER COMPARE AND CONDITIONAL JUMPS ON ALPHA
Alpha Branch Format
+-----------------------+
| 31..26 Opcode |
| 25..21 Ra |
| 20..0 disp |
+-----------------------+
Conditional Branch
Bxx Ra.rq,disp.al !Branch format
{ update PC }
va <- PC + (4 * SEXT(disp))
if (TEST(Rav,condition) THEN PC <- va
BEQ Branch if register Equal to Zero
BGE Branch if Register Greater Than or Equal to Zero
BGT Branch if Register Greater than zero
BLBC Branch if Register Low Bit is clear
BLBS Branch if Register Low bit is Set
BLE Branch if Register Less than or Equal to Zero
BLT Branch if Register Less that zero
BNE Branch if Register Not equal to zero
BEQ 39
BGE 3E
BGT 3F
BLBC 38
BLBS 3C
BLE 3B
BLT 3A
BNE 3D
Alpha Operate Format
+-------------------------+------------------------+
| 31..26 Opcode | 31..26 Opcode |
| 25..21 Ra | 25..21 Ra |
| 20..16 Rb | 20..13 LIT |
| 15..13 SBZ | 12 1 |
| 12 0 | 11..5 Function |
| 11..5 Function | 4..0 Rc |
| 4..0 Rc | |
+-------------------------+------------------------+
Integer Signed Compare
CMPxx Ra.rq,Rb.rq,Rc.wq !Operate Format
CMPxx Ra,rq,#b.ib,Rc.wq !Operate Format
If Rav SIGNED_RELATION Rbv then
Rc <- 1
ELSE
Rc <- 0
CMPEQ Compare Signed Quadword Equal
CMPLE Compare Signed Quadword Less Than or Equal
CMPLT Compare Signed Quadword Less Than
CMPEQ 10.2D
CMPLE 10.6D
CMPLT 10.4D
Integer Unsigned Compare
CMPUxx Ra.rq,Rb.rq,Rc.wq !Operate Format
CMPUxx Ra,rq,#b.ib,Rc.wq !Operate Format
If Rav UNSIGNED_RELATION Rbv then
Rc <- 1
ELSE
Rc <- 0
CMPULE Compare Signed Quadword Less Than or Equal
CMPULT Compare Signed Quadword Less Than
CMPULE 10.3D
CMPULT 10.1D
// ----------------------------------------------------------------------
Index Prev Next