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