Instructions

Instructions for each machine:

fr550 ALU - ALU


fr550 FPU - FPU


fr550 BR - Branch


fr550 fr550 - FR550 cpu


Individual instructions descriptions


add - add reg/reg

addcc - add reg/reg, set icc

addi - add reg/immed

addicc - add reg/immed, set icc

addx - Add reg/reg, with carry

addxcc - Add reg/reg, use/set carry

addxi - Add reg/immed, with carry

addxicc - Add reg/immed, with carry

and - and reg/reg

andcc - and reg/reg, set icc

andcr - and condition code regs

andi - and reg/immed

andicc - and reg/immed, set icc

andncr - andn condition code regs

bar - barrier

bc - integer branch carry set

bcclr - integer ctrlr branch carry set

bceqlr - integer ctrlr branch equal

bcgelr - integer ctrlr branch greater equal

bcgtlr - integer ctrlr branch greater

bchilr - integer ctrlr branch greater unsigned

bclelr - integer ctrlr branch less equal

bclr - integer cclr branch carry set

bclslr - integer ctrlr branch less equal unsigned

bcltlr - integer ctrlr branch less

bcnclr - integer ctrlr branch carry clear

bcnelr - integer ctrlr branch not equal

bcnlr - integer ctrlr branch negative

bcnolr - integer ctrlr branch never

bcnvlr - integer ctrlr branch overflow clear

bcplr - integer ctrlr branch positive

bcralr - integer ctrlr branch always

bctrlr - LCR conditional branch to lr

bcvlr - integer ctrlr branch overflow set

beq - integer branch equal

beqlr - integer cclr branch equal

bge - integer branch greater or equal

bgelr - integer cclr branch greater or equal

bgt - integer branch greater

bgtlr - integer cclr branch greater

bhi - integer branch greater unsigned

bhilr - integer cclr branch greater unsigned

ble - integer branch less or equal

blelr - integer cclr branch less or equal

bls - integer branch less or equal unsigned

blslr - integer cclr branch less or equal unsigned

blt - integer branch less

bltlr - integer cclr branch less

bn - integer branch negative

bnc - integer branch carry clear

bnclr - integer cclr branch carry clear

bne - integer branch not equal

bnelr - integer cclr branch not equal

bnlr - integer cclr branch negative

bno - integer branch never

bnolr - integer cclr branch never

bnv - integer branch overflow clear

bnvlr - integer cclr branch overflow clear

bp - integer branch positive

bplr - integer cclr branch positive

bra - integer branch equal

bralr - integer cclr branch always

break - break trap

bv - integer branch overflow set

bvlr - integer cclr branch overflow set

cadd - conditional add

caddcc - add, set icc

call - call and link

callil - call immediate and link

calll - call and link

cand - conditional and

candcc - conditional and, set icc

ccalll - conditional call and link

cckc - check integer cc carry set

cckeq - check integer cc equal

cckge - check integer cc greater or equal

cckgt - check integer cc greater

cckhi - check integer cc greater unsigned

cckle - check integer cc less or equal

cckls - check integer cc less or equal unsigned

ccklt - check integer cc less

cckn - check integer cc negative

ccknc - check integer cc carry clear

cckne - check integer cc not equal

cckno - conditional check integer cc never

ccknv - check integer cc overflow clear

cckp - check integer cc positive

cckra - conditional check integer cc always

cckv - check integer cc overflow set

cfabss - Conditional floating point absolute value, single

cfadds - cond add single

cfckeq - check float cc equal

cfckge - check float cc greater or equal

cfckgt - check float cc greater

cfckle - check float cc less or equal

cfcklg - check float cc greater or less

cfcklt - check float cc less

cfckne - check float cc not equal

cfckno - conditional check float cc never

cfcko - check float cc ordered

cfckra - conditional check float cc always

cfcku - check float cc unordered

cfckue - check float cc unordered or equal

cfckug - check float cc unordered or greater

cfckuge - check float cc unordered greater or equal

cfckul - check float cc unordered or less

cfckule - check float cc unordered less or equal

cfcmps - Conditional compare single, float

cfdivs - cond div single

cfitos - Conditional convert Integer to Single

cfmas - conditional parallel mul/add, single

cfmovs - Conditional move Single Float

cfmss - conditional parallel mul/sub, single

cfmuls - cond mul single

cfnegs - Conditional floating point negate, single

cfsqrts - Conditional square root single

cfstoi - Conditional convert Single to Integer

cfsubs - cond sub single

cjmpl - conditional jump and link

ckc - check integer cc carry set

ckeq - check integer cc equal

ckge - check integer cc greater or equal

ckgt - check integer cc greater

ckhi - check integer cc greater unsigned

ckle - check integer cc less or equal

ckls - check integer cc less or equal unsigned

cklt - check integer cc less

ckn - check integer cc negative

cknc - check integer cc carry clear

ckne - check integer cc not equal

ckno - check integer cc never

cknv - check integer cc overflow clear

ckp - check integer cc positive

ckra - check integer cc always

ckv - check integer cc overflow set

cld - Load word

cldbf - Load byte float

cldbfu - Load byte float, update

cldd - Load double word

clddf - Load double float

clddfu - Load double float, update

clddu - Load double word, update

cldf - Load word float

cldfu - Load word float, update

cldhf - Load half float

cldhfu - Load half float, update

cldsb - Load signed byte

cldsbu - Load signed byte, update

cldsh - Load signed half

cldshu - Load signed half, update

cldu - Load word, update

cldub - Load unsigned byte

cldubu - Load unsigned byte, update

clduh - Load unsigned half

clduhu - Load unsigned half, update

clrfa - Clear FR NE flag ALL

clrfr - Clear FR NE flag

clrga - Clear GR NE flag ALL

clrgr - Clear GR NE flag

cmaddhss - Conditional Media dual add signed with saturation

cmaddhus - Conditional Media dual add unsigned with saturation

cmand - conditional and reg/reg

cmbtoh - Conditional media convert byte to halfword

cmcpxis - Conditional Media dual complex imaginary signed with saturation

cmcpxiu - Conditional Media dual complex imaginary unsigned with saturation

cmcpxrs - Conditional Media dual complex real signed with saturation

cmcpxru - Conditional Media dual complex real unsigned with saturation

cmexpdhd - Conditional media expand halfword to double

cmexpdhw - Conditional media expand halfword to word

cmhtob - Conditional media convert halfword to byte

cmmachs - Conditional Media dual multiply and accumulate signed

cmmachu - Conditional Media dual multiply and accumulate unsigned

cmmulhs - Conditional Media dual multiply signed

cmmulhu - Conditional Media dual multiply unsigned

cmnot - cmnot

cmor - conditional or reg/reg

cmovfg - transfer fr to gr

cmovfgd - Conditional move FR to GR double

cmovgf - transfer gr to fr

cmovgfd - Conditional move GR to FR double

cmpb - Compare bytes

cmpba - OR of Compare bytes

cmqaddhss - Conditional Media quad add signed with saturation

cmqaddhus - Conditional Media quad add unsigned with saturation

cmqmachs - Conditional Media quad multiply and accumulate signed

cmqmachu - Conditional media quad multiply and accumulate unsigned

cmqmulhs - Conditional Media quad multiply signed

cmqmulhu - Conditional Media quad multiply unsigned

cmqsubhss - Conditional Media quad sub signed with saturation

cmqsubhus - Conditional Media quad sub unsigned with saturation

cmsubhss - Conditional Media dual sub signed with saturation

cmsubhus - Conditional Media dual sub unsigned with saturation

cmxor - conditional xor reg/reg

cnot - conditional not

commitfa - commit exceptions, any FR

commitfr - commit exceptions, specific FR

commitga - commit exceptions, any GR

commitgr - commit exceptions, specific GR

cor - conditional or

corcc - conditional or , set icc

cscan - conditional scan

csdiv - conditional signed division

csll - conditional shift left logical

csllcc - shift left logical, set icc

csmul - conditional signed multiply

csmulcc - conditional signed multiply and set condition code

csra - conditional shift right arith

csracc - shift right arith , set icc

csrl - conditional shift right logical

csrlcc - shift right logical, set icc

cst - Store word

cstb - Store unsigned byte

cstbf - Store byte float

cstbfu - Store byte float, update index

cstbu - Store unsigned byte, update index

cstd - Store double word

cstdf - Store double float

cstdfu - Store double float, update index

cstdu - Store double word, update index

cstf - Store word float

cstfu - Store word float, update index

csth - Store unsigned half

csthf - Store half float

csthfu - Store half float, update index

csthu - Store unsigned half, update index

cstu - Store word, update index

csub - conditional sub

csubcc - sub, set icc

cswap - Conditionally swap contents of memory with GR

cudiv - conditional unsigned division

cxor - conditional xor

cxorcc - conditional xor, set icc

dcef - Data cache entry flush

dcei - invalidate data cache entry

dcf - Data cache flush

dci - invalidate data cache

dcpl - preload data cache

dcul - unlock data cache

fabss - Float absolute value, single

fadds - add single float

fbeq - float branch equal

fbeqlr - float cclr branch equal

fbge - float branch greater or equal

fbgelr - float branch greater or equal

fbgt - float branch greater

fbgtlr - float branch greater

fble - float branch less or equal

fblelr - float branch less or equal

fblg - float branch less or greater

fblglr - float branch less or greater

fblt - float branch less

fbltlr - float branch less

fbne - float branch not equal

fbnelr - float cclr branch not equal

fbno - float branch never

fbnolr - float cclr branch never

fbo - float branch ordered

fbolr - float branch ordered

fbra - float branch equal

fbralr - float cclr branch always

fbu - float branch unordered

fbue - float branch unordered or equal

fbuelr - float branch unordered or equal

fbug - float branch unordered or greater

fbuge - float branch unordered, greater,equal

fbugelr - float branch unordered, greater, equal

fbuglr - float branch unordered or greater

fbul - float branch unordered or less

fbule - float branch unordered, less or equal

fbulelr - float branch unordered, less or equal

fbullr - float branch unordered or less

fbulr - float branch unordered

fcbeqlr - float cclr branch equal

fcbgelr - float branch greater or equal

fcbgtlr - float branch greater

fcblelr - float branch less or equal

fcblglr - float branch less or greater

fcbltlr - float branch less

fcbnelr - float cclr branch not equal

fcbnolr - float ctrlr branch never

fcbolr - float branch ordered

fcbralr - float ctrlr branch always

fcbuelr - float branch unordered or equal

fcbugelr - float branch unordered, greater, equal

fcbuglr - float branch unordered or greater

fcbulelr - float branch unordered, less or equal

fcbullr - float branch unordered or less

fcbulr - float branch unordered

fckeq - check float cc equal

fckge - check float cc greater or equal

fckgt - check float cc greater

fckle - check float cc less or equal

fcklg - check float cc greater or less

fcklt - check float cc less

fckne - check float cc not equal

fckno - check float cc never

fcko - check float cc ordered

fckra - check float cc always

fcku - check float cc unordered

fckue - check float cc unordered or equal

fckug - check float cc unordered or greater

fckuge - check float cc unordered greater or equal

fckul - check float cc unordered or less

fckule - check float cc unordered less or equal

fcmps - compare single float

fdadds - dual add, single

fdcmps - float dual compare single

fdivs - div single float

fdmulcs - Float dual cross multiply single

fdmuls - dual mul, single

fdsads - dual add/sub, single

fdsubs - dual sub, single

fitos - Convert Integer to Single

fmas - parallel mul/add, single

fmovs - Move Single Float

fmss - parallel mul/sub, single

fmuls - mul single float

fnegs - Floating point negate, single

fnop - Floating point nop

fsqrts - Square root single

fstoi - Convert Single to Integer

fsubs - sub single float

fteq - float trap equal

ftge - float trap greater or equal

ftgt - float trap greater

ftieq - float trap equal

ftige - float trap greater or equal

ftigt - float trap greater

ftile - float trap less or equal

ftilg - float trap greater or less

ftilt - float trap less

ftine - float trap not equal

ftino - float trap never

ftio - float trap ordered

ftira - float trap always

ftiu - float trap unordered

ftiue - float trap unordered or equal

ftiug - float trap unordered or greater

ftiuge - float trap unordered greater or equal

ftiul - float trap unordered or less

ftiule - float trap unordered less or equal

ftle - float trap less or equal

ftlg - float trap greater or less

ftlt - float trap less

ftne - float trap not equal

ftno - flost trap never

fto - float trap ordered

ftra - float trap always

ftu - float trap unordered

ftue - float trap unordered or equal

ftug - float trap unordered or greater

ftuge - float trap unordered greater or equal

ftul - float trap unordered or less

ftule - float trap unordered less or equal

icei - invalidate insn cache entry

ici - invalidate insn cache

icpl - preload insn cache

icul - unlock insn cache

jmpil - jump immediate and link

jmpl - jump and link

ld - Load word

ldbf - Load byte float

ldbfi - Load byte float

ldbfu - Load byte float, update index

ldd - Load double word

lddf - Load double float

lddfi - Load double float

lddfu - Load double float, update index

lddi - Load double word

lddu - Load double word, update index

ldf - Load word float

ldfi - Load word float

ldfu - Load word float, update index

ldhf - Load half float

ldhfi - Load half float

ldhfu - Load half float, update index

ldi - Load word

ldsb - Load signed byte

ldsbi - Load signed byte

ldsbu - Load signed byte, update index

ldsh - Load signed half

ldshi - Load signed half

ldshu - Load signed half, update index

ldu - Load word, update index

ldub - Load unsigned byte

ldubi - Load unsigned byte

ldubu - Load unsigned byte, update index

lduh - Load unsigned half

lduhi - Load unsigned half

lduhu - Load unsigned half, update index

mabshs - Media dual absolute value, halfword

maddaccs - Media accumulator addition

maddhss - Media dual add signed with saturation

maddhus - Media dual add unsigned with saturation

mand - and reg/reg

masaccs - Media add and subtract signed accumulator with saturation

maveh - Media dual average

mbtoh - Media convert byte to halfword

mclracc-0 - Media clear accumulator(s)

mclracc-1 - Media clear accumulator(s)

mcmpsh - Media dual compare signed

mcmpuh - Media dual compare unsigned

mcplhi - Media bit concatenate, halfword

mcpli - Media bit concatenate, word

mcpxis - Media dual complex imaginary signed with saturation

mcpxiu - Media dual complex imaginary unsigned with saturation

mcpxrs - Media dual complex real signed with saturation

mcpxru - Media dual complex real unsigned with saturation

mcut - media accumulator cut reg

mcuti - media accumulator cut immed

mcutss - media accumulator cut reg with saturation

mcutssi - media accumulator cut immed with saturation

mdaddaccs - Media accumulator addition

mdasaccs - Media add and subtract signed accumulator with saturation

mdcutssi - Media dual cut with signed saturation

mdpackh - Media dual pack

mdrotli - rotate left reg/reg

mdsubaccs - Media accumulator subtraction

membar - memory barrier

mexpdhd - Media expand halfword to double

mexpdhw - Media expand halfword to word

mhdseth - Media dual set halfword upper 5 bits

mhdsets - Media dual set halfword signed 12 bits

mhsethih - Media set upper 5 bits hi

mhsethis - Media set upper signed 12 bits

mhsetloh - Media set upper 5 bits lo

mhsetlos - Media set lower signed 12 bits

mhtob - Media convert halfword to byte

mmachs - Media dual multiply and accumulate signed

mmachu - Media dual multiply and accumulate unsigned

mmrdhs - Media dual multiply and reduce signed

mmrdhu - Media dual multiply and reduce unsigned

mmulhs - Media dual multiply signed

mmulhu - Media dual multiply unsigned

mmulxhs - Media dual cross multiply signed

mmulxhu - Media dual cross multiply unsigned

mnop - Media nop

mnot - mnot

mor - or reg/reg

movfg - transfer fr to gr

movfgd - move FR for GR double

movgf - transfer gr to fr

movgfd - move GR for FR double

movgs - transfer gr->spr

movsg - transfer spr->gr

mpackh - Media halfword pack

mqaddhss - Media quad add signed with saturation

mqaddhus - Media quad add unsigned with saturation

mqcpxis - Media quad complex imaginary signed with saturation

mqcpxiu - Media quad complex imaginary unsigned with saturation

mqcpxrs - Media quad complex real signed with saturation

mqcpxru - Media quad complex real unsigned with saturation

mqmachs - Media quad multiply and accumulate signed

mqmachu - Media quad multiply and accumulate unsigned

mqmacxhs - Media quad cross multiply and accumulate signed

mqmulhs - Media quad multiply signed

mqmulhu - Media quad multiply unsigned

mqmulxhs - Media quad cross multiply signed

mqmulxhu - Media quad cross multiply unsigned

mqsaths - Media quad saturation signed

mqsubhss - Media quad sub signed with saturation

mqsubhus - Media quad sub unsigned with saturation

mqxmachs - Media quad multiply and cross accumulate signed

mqxmacxhs - Media quad cross multiply and cross accumulate signed

mrdacc - Media read accumulator

mrdaccg - Media read accumulator guard

mrotli - rotate left reg/reg

mrotri - rotate right reg/reg

msaths - Media dual saturation signed

msathu - Media dual saturation unsigned

msllhi - Media dual shift left logical

msrahi - Media dual shift right arithmetic

msrlhi - Media dual shift right logical

msubaccs - Media accumulator subtraction

msubhss - Media dual sub signed with saturation

msubhus - Media dual sub unsigned with saturation

mtrap - media trap

munpackh - Media halfword unpack

mwcut - media cut

mwcuti - media cut

mwtacc - Media write accumulator

mwtaccg - Media write accumulator guard

mxor - xor reg/reg

nandcr - nand condition code regs

nandncr - nandn condition code regs

nfadds - ne add single

nfdadds - ne dual add, single

nfdivs - ne div single

nfdmulcs - NE float dual cross multiply single

nfdmuls - ne dual mul, single

nfdsads - ne dual add/sub, single

nfdsubs - ne dual sub, single

nfitos - NE convert Integer to Single

nfmas - ne parallel mul/add,single

nfmss - ne parallel mul/sub,single

nfmuls - ne mul single

nfsqrts - Non exception square root, single

nfstoi - NE convert Single to Integer

nfsubs - ne sub single

nld - Load word

nldbf - Load byte float

nldbfi - Load byte float

nldbfu - Load byte float, update index

nldd - Load double word

nlddf - Load double float

nlddfi - Load double float

nlddfu - Load double float, update index

nlddi - Load double word

nlddu - Load double word, update index

nldf - Load word float

nldfi - Load word float

nldfu - Load word float, update index

nldhf - Load half float

nldhfi - Load half float

nldhfu - Load half float, update index

nldi - Load word

nldsb - Load signed byte

nldsbi - Load signed byte

nldsbu - Load signed byte, update index

nldsh - Load signed half

nldshi - Load signed half

nldshu - Load signed half, update index

nldu - Load word, update index

nldub - Load unsigned byte

nldubi - Load unsigned byte

nldubu - Load unsigned byte, update index

nlduh - Load unsigned half

nlduhi - Load unsigned half

nlduhu - Load unsigned half, update index

norcr - nor condition code regs

norncr - norn condition code regs

not - not

notcr - not cccr register

nsdiv - non excepting signed division

nsdivi - non excepting signed division reg/immed

nudiv - non excepting unsigned division

nudivi - non excepting unsigned division reg/immed

or - or reg/reg

orcc - or reg/reg, set icc

orcr - or condition code regs

ori - or reg/immed

oricc - or reg/immed, set icc

orncr - orn condition code regs

rett - return from trap

scan - scan

scani - scan immediate

sdiv - signed division

sdivi - signed division reg/immed

sethi - set high order bits

setlo - set low order bits

setlos - set low order bits and extend sign

sll - shift left logical reg/reg

sllcc - shift left logical reg/reg,set icc

slli - shift left logical reg/immed

sllicc - shift left logical reg/immed, set icc

smul - signed multiply reg/reg

smulcc - signed multiply reg/reg

smuli - signed multiply reg/immed

smulicc - signed multiply reg/immed

sra - shift right arith reg/reg

sracc - shift right arith reg/reg,set icc

srai - shift right arith reg/immed

sraicc - shift right arith reg/immed, set icc

srl - shift right logical reg/reg

srlcc - shift right logical reg/reg,set icc

srli - shift right logical reg/immed

srlicc - shift right logical reg/immed, set icc

st - Store word

stb - Store unsigned byte

stbf - Store byte float

stbfi - Store byte float

stbfu - Store byte float, update index

stbi - Store unsigned byte

stbu - Store unsigned byte, update index

std - Store double word

stdf - Store double float

stdfi - Store double float

stdfu - Store double float,update index

stdi - Store double word

stdu - Store double word, update index

stf - Store word float

stfi - Store word float

stfu - Store word float, update index

sth - Store unsigned half

sthf - Store half float

sthfi - Store half float

sthfu - Store half float, update index

sthi - Store unsigned half

sthu - Store unsigned half, update index

sti - Store word

stu - Store word, update index

sub - sub reg/reg

subcc - sub reg/reg, set icc

subi - sub reg/immed

subicc - sub reg/immed, set icc

subx - Sub reg/reg, with carry

subxcc - Sub reg/reg, use/set carry

subxi - Sub reg/immed, with carry

subxicc - Sub reg/immed, with carry

swap - Swap contents of memory with GR

swapi - Swap contents of memory with GR

tc - integer trap carry set

teq - integer trap equal

tge - integer trap greater or equal

tgt - integer trap greater

thi - integer trap greater unsigned

tic - integer trap carry set

tieq - integer trap equal

tige - integer trap greater or equal

tigt - integer trap greater

tihi - integer trap greater unsigned

tile - integer trap less or equal

tils - integer trap less or equal unsigned

tilt - integer trap less

tin - integer trap negative

tinc - integer trap carry clear

tine - integer trap not equal

tino - integer trap never

tinv - integer trap overflow clear

tip - integer trap positive

tira - integer trap always

tiv - integer trap overflow set

tle - integer trap less or equal

tls - integer trap less or equal unsigned

tlt - integer trap less

tn - integer trap negative

tnc - integer trap carry clear

tne - integer trap not equal

tno - integer trap never

tnv - integer trap overflow clear

tp - integer trap positive

tra - integer trap always

tv - integer trap overflow set

udiv - unsigned division reg/reg

udivi - unsigned division reg/immed

umul - unsigned multiply reg/reg

umulcc - unsigned multiply reg/reg

umuli - unsigned multiply reg/immed

umulicc - unsigned multiply reg/immed

xor - xor reg/reg

xorcc - xor reg/reg, set icc

xorcr - xor condition code regs

xori - xor reg/immed

xoricc - xor reg/immed, set icc


Macro Instructions

Macro instructions for each machine:

fr550 - FR550 cpu

Individual macro-instructions descriptions


ccmp - conditional compare

cmov - conditional move

cmp - compare

cmpi - compare immediate

mov - move

nop - nop

ret - return


This documentation was machine generated from the cgen cpu description files for this architecture.
https://sourceware.org/cgen/