Instructions

Table 1-6:MicroBlaze Instruction Set Summary (Continued)

R

Type A

0-5

6-10

11-15

16-20

21-31

 

Semantics

 

 

 

 

 

 

 

Type B

0-5

6-10

11-15

 

16-31

 

 

 

 

 

 

 

 

 

 

 

PUT Ra,FSLx

011011

00000

Ra

1000000000000 &

FSLx := Ra (blocking data write)

 

 

 

 

 

FSLx

 

 

 

 

 

 

 

 

 

NGET Rd,FSLx

011011

Rd

00000

0100000000000 &

Rd := FSLx (non-blocking data read)

 

 

 

 

 

FSLx

MSR[FSL] := 1 if (FSLx_S_Control = 1)

 

 

 

 

 

 

MSR[C] := not FSLx_S_Exists

 

 

 

 

 

 

NPUT Ra,FSLx

011011

00000

Ra

1100000000000 &

FSLx := Ra (non-blocking data write)

 

 

 

 

 

FSLx

MSR[C] := FSLx_M_Full

 

 

 

 

 

 

CGET Rd,FSLx

011011

Rd

00000

0010000000000 &

Rd := FSLx (blocking control read)

 

 

 

 

 

FSLx

MSR[FSL] := 1 if (FSLx_S_Control = 0)

 

 

 

 

 

 

CPUT Ra,FSLx

011011

00000

Ra

1010000000000 &

FSLx := Ra (blocking control write)

 

 

 

 

 

FSLx

 

 

 

 

 

 

 

 

 

NCGET Rd,FSLx

011011

Rd

00000

0110000000000 &

Rd := FSLx (non-blocking control read)

 

 

 

 

 

FSLx

MSR[FSL] := 1 if (FSLx_S_Control = 0)

 

 

 

 

 

 

MSR[C] := not FSLx_S_Exists

 

 

 

 

 

 

NCPUT Ra,FSLx

011011

00000

Ra

1110000000000 &

FSLx := Ra (non-blocking control write)

 

 

 

 

 

FSLx

MSR[C] := FSLx_M_Full

 

 

 

 

 

 

 

OR Rd,Ra,Rb

100000

Rd

Ra

Rb

00000000000

Rd := Ra or Rb

 

 

 

 

 

 

 

AND Rd,Ra,Rb

100001

Rd

Ra

Rb

00000000000

Rd := Ra and Rb

 

 

 

 

 

 

 

XOR Rd,Ra,Rb

100010

Rd

Ra

Rb

00000000000

Rd := Ra xor Rb

 

 

 

 

 

 

 

 

 

ANDN Rd,Ra,Rb

100011

Rd

Ra

Rb

00000000000

Rd := Ra and

 

 

Rb

 

 

 

 

 

 

 

PCMPBF Rd,Ra,Rb

100000

Rd

Ra

Rb

10000000000

Rd := 1 if (Rb[0:7] = Ra[0:7]) else

 

 

 

 

 

 

Rd := 2 if (Rb[8:15] = Ra[8:15]) else

 

 

 

 

 

 

Rd := 3 if (Rb[16:23] = Ra[16:23]) else

 

 

 

 

 

 

Rd := 4 if (Rb[24:31] = Ra[24:31]) else

 

 

 

 

 

 

Rd := 0

 

 

 

 

 

 

 

PCMPEQ Rd,Ra,Rb

100010

Rd

Ra

Rb

10000000000

Rd := 1 if (Rd = Ra) else

 

 

 

 

 

 

Rd := 0

 

 

 

 

 

 

 

PCMPNE Rd,Ra,Rb

100011

Rd

Ra

Rb

10000000000

Rd := 1 if (Rd != Ra) else

 

 

 

 

 

 

Rd := 0

 

 

 

 

 

 

 

SRA Rd,Ra

100100

Rd

Ra

0000000000000001

Rd := s(Ra >> 1)

 

 

 

 

 

 

C := Ra[31]

 

 

 

 

 

 

SRC Rd,Ra

100100

Rd

Ra

0000000000100001

Rd := C & (Ra >> 1)

 

 

 

 

 

 

C := Ra[31]

 

 

 

 

 

 

SRL Rd,Ra

100100

Rd

Ra

0000000001000001

Rd := 0 & (Ra >> 1)

 

 

 

 

 

 

C := Ra[31]

 

 

 

 

 

 

SEXT8 Rd,Ra

100100

Rd

Ra

0000000001100000

Rd := s(Ra[24:31])

 

 

 

 

 

 

SEXT16 Rd,Ra

100100

Rd

Ra

0000000001100001

Rd := s(Ra[16:31])

 

 

 

 

 

 

 

WIC Ra,Rb

100100

00000

Ra

Rb

01101000

ICache_Tag := Ra

 

 

 

 

 

 

 

WDC Ra,Rb

100100

00000

Ra

Rb

01100100

DCache_Tag := Ra

 

 

 

 

 

 

 

 

 

MicroBlaze Processor Reference Guide

www.xilinx.com

17

UG081 (v6.0) June 1, 2006

1-800-255-7778

 

Page 17
Image 17
Xilinx EDK 8.2i manual MicroBlaze Processor Reference Guide UG081 v6.0 June 1