TriCore Instruction Set Architecture

From emmtrix Wiki
Jump to navigation Jump to search

TriCore is a unified, 32-bit microcontroller-DSP, single-core architecture optimized for real-time embedded systems. The ISA supports a uniform, 32-bit address space, with optional virtual addressing and memory-mapped I/O. The architecture allows for a wide range of implementations, ranging from scalar through to superscalar, and is capable of interacting with different system architectures, including multiprocessing. This flexibility at the implementation and system levels allows for different trade-offs between performance and cost at any point in time.

The architecture supports both 16-bit and 32-bit instruction formats. All instructions have a 32-bit format. The 16-bit instructions are a subset of the 32-bit instructions, chosen because of their frequency of use. These instructions significantly reduce code space, lowering memory requirements, system and power consumption.

Real-time responsiveness is largely determined by interrupt latency and context-switch time. The high-performance architecture minimizes interrupt latency by avoiding long multi-cycle instructions and by providing a flexible hardware-supported interrupt scheme. The architecture also supports fast-context switching.

Versions

ISA Processors User Manual Date New Instructions
TC1.3 2002-05
TC1.3.1 TriCore™ Family AUDO MAX 2007-11
  • CACHEI.W, CACHEI.WI
  • FTOIZ, FTOQ31Z, FTOUZ (FPU Conversion Instructions)
TC1.6 Infineon AURIX TC2xx 2013-07
  • DISABLE, RESTORE, CACHEI.I (Interrupt and Data Cache manipulation)
  • DIV, DIV.U (Fast Integer Divide)
  • FCALL,FCALLA,FCALLI, FRET (fast call and return with minimal saving of state)
  • LD.BU, LD.B, LD.HU, LD.H, ST.B, ST.H, ST.A (Long offset addressing mode introduced for byte, half word and address accesses)
  • JEQ, JNE (Extended range of 16 bit jumps)
  • CMPSWAP.W, SWAPMSK.W (New Synchronisation Instructions)
  • CRC32 (New CRC instruction)
  • WAIT (New wait for interrupt instruction)
TC1.6.2 Infineon AURIX TC3xx 2017-01
  • CRC32B.W, CRC32L.W, CRC32.B (CRC32 for big endian, little endian and byte data)
  • CRCN (arbitrary width and polynomial CRC calculation)
  • SHUFFLE (Reorder bytes within word)
  • POPCNT (count number of bits set in word)
  • FTOHP, HPTOF (Half precision floating point conversion)
  • LHA (Load high bits of address value)
TC1.8 Infineon AURIX TC4x N/A N/A (user manual not yet public available)

Features

The key features of the TriCore Instruction Set Architecture (ISA) are:

  • 32-bit load store architecture
  • 4 Gbyte address range (232)
  • 16-bit and 32-bit instructions for reduced code size
  • Data types:
    • Boolean, integer with saturation, bit array, signed fraction, character, double-word integers, signed integer, unsigned integer, IEEE-754 single-precision floating point
  • Data formats:
    • Bit, byte (8-bits), half-word (16-bits), word (32-bits), double-word (64-bits)
  • Byte and bit addressing
  • Little-endian byte ordering for data, memory and CPU registers
  • Multiply and Accumulate (MAC) instructions: Dual 16 × 16, 16 × 32, 32 × 32
  • Saturation integer arithmetic
  • Packed data
  • Addressing modes:
    • Absolute, circular, bit reverse, long + short, base + offset with pre- and post-update
  • Instruction types:
    • Arithmetic, address arithmetic, comparison, address comparison, logical, MAC, shift, coprocessor, bit logical, branch, bit field, load/store, packed data, system
  • General Purpose Register Set (GPRS):
    • Sixteen 32-bit data registers
    • Sixteen 32-bit address registers
    • Three 32-bit status and program counter registers (PSW, PC, PCXI)
  • Debug support (OCDS):
    • Level 1, supported in conjunction with the CPS block
    • Level 3, supported in conjunction with the MCDS block (Emulation Device only).
  • Flexible memory protection system providing multiple protection sets with multiple protection ranges per set.
  • Temporal protection system allowing time bounded real time operation

Register Set

Architectural Registers

The architectural registers consist of:

  • 32 General Purpose Registers (GPRs)
    • 16 Address Registers
    • 16 Data Registers
  • Program Counter (PC)
  • Two 32-bit registers containing status flags
32-bit Architectural Registers
Address Register
A[15] Implicit Base Address
A[14]
A[13]
A[12]
A[11] Return Address
A[10] Stack Pointer (SP)
A[9] Global Address Register
A[8] Global Address Register
A[7]
A[6]
A[5]
A[4]
A[3]
A[2]
A[1] Global Address Register
A[0] Global Address Register
Data Register
D[15] Implicit Data
D[14]
D[13]
D[12]
D[11]
D[10]
D[9]
D[8]
D[7]
D[6]
D[5]
D[4]
D[3]
D[2]
D[1]
D[0]
System Register
PCXI Previous Context Information
PSW Program Status Word
PC Program Counter

Special Registers

General Special Registers
PC Program Counter Register
SYSCON System Configuration Register
CPU_ID CPU Identification Register (Read Only)
CORE_ID Core Identification Register
BIV Base Address of Interrupt Vector Table Register
BTV Base Address of Trap Vector Table Register
ISP Interrupt Stack Pointer Register
ICR ICU Interrupt Control Register
FCX Free Context List Head Pointer Register
LCX Free Context List Limit Pointer Register
COMPAT Compatibility Mode Register
Debug Registers
DBGSR Debug Status Register
EXEVT External Event Register
CREVT Core Register Event Register
SWEVT Software Event Register
TR0EVT Trigger Event 0 Register
TR0ADR Trigger Address 0 Register
TR7EVT Trigger Event 7 Register
TR7ADR Trigger Address 7 Register
TRIG_ACC Trigger Accumulator Register
DMS Debug Monitor Start Address Register
DCX Debug Context Save Address Register
TASK_ASI TASK Address Space Identifier Register
DBGTCR Debug Trap Control Register
CCTRL Counter Control Register
CCNT CPU Clock Count Register
ICNT Instruction Count Register
M1CNT Multi Count Register 1
M2CNT Multi Count Register 2
M3CNT Multi Count Register 3
Floating Point Registers
FPU_TRAP_CON Trap Control Register
FPU_TRAP_PC Trapping Instruction Program Control Register
FPU_TRAP_OPC Trapping Instruction Opcode Register
FPU_TRAP_SRC1 Trapping Instruction SRC1 Operand Register
FPU_TRAP_SRC2 Trapping Instruction SRC2 Operand Register
FPU_TRAP_SRC3 Trapping Instruction SRC3 Operand Register

Instructions Set

Pipeline

Acronym Pipeline
LS Load/Store
IP Integer Pipeline
FPU Floating Point Unit

Classes

Class Pipeline Description Example
Arithmetic LS Arithmetic operations involving addresses. ADD.A, ADDIH.A
Arithmetic IP Arithmetic operations involving integers. ADD, SUB
Cache LS Cache management operations. CACHEA.W, CACHEA.WI
Compare IP Comparison operations. EQ, GE
Control Flow LS Control flow instructions for branching. J, JNE.A
Control Flow IP Control flow operations for branching. JEQ, JLT
Coprocessor 0 IP Special operations using coprocessor 0. CRC32.B, IXMAX
Count IP Counting bits in registers. CLO, CLZ
CSA Control Flow LS Context Save Areas (CSA) control flow instructions CALL, BISR
Extract IP Bit field extraction and manipulation. DEXTR, INS.T
Floating Point FPU Floating-point instructions ADDF, SUBF
Integer Divide IP Integer division operations. DIV, DVSTEP
Load LS Load data from memory. LD.A, LDUCX
Logical IP Bitwise logical operations. AND, OR
Move LS Move data between registers. MOV.A, MOV.AA
Move IP Move operations with conditions. CMOV, MOV
Multiply IP Multiplication operations. MUL, MULS
Multiply Accumulate IP Multiply and accumulate operations. MADD, MSUB
Shift IP Bit shift operations. SH, SHA
Store LS Store data to memory. ST.A, ST.B
Sync LS Synchronization operations. DSYNC, ISYNC
Trap and Interrupt LS Interrupt and trap operations. DEBUG, TRAPV

Instruction List

Pipeline Class Mnemonic Longname ISA Version
LS Arithmetic ADD.A Add Address
LS Arithmetic ADDIH.A Add Immediate High to Address
LS Arithmetic ADDSC.A Add Scaled Index to Address
LS Arithmetic ADDSC.AT Add Bit-Scaled Index to Address
LS CSA Control Flow BISR Begin Interrupt Service Routine
LS Cache CACHEA.I Cache Address, Invalidate
LS Cache CACHEA.W Cache Address, Writeback TC1.3.1
LS Cache CACHEA.WI Cache Address, Writeback and Invalidate TC1.3.1
LS Cache CACHEI.W Cache Index, Writeback
LS Cache CACHEI.I Cache Index, Invalidate TC1.6
LS Cache CACHEI.WI Cache Index, Writeback, Invalidate
LS CSA Control Flow CALL Call
LS CSA Control Flow CALLA Call Absolute
LS CSA Control Flow CALLI Call Indirect
LS Load CMPSWAP.W Compare and Swap TC1.6
LS Trap and Interrupt DEBUG Debug
LS Trap and Interrupt DISABLE Disable Interrupts TC1.6
LS Sync DSYNC Synchronize Data
LS Trap and Interrupt ENABLE Enable Interrupts
LS Arithmetic EQ.A Equal to Address
LS Arithmetic EQZ.A Equal Zero Address
LS CSA Control Flow FCALL Fast Call TC1.6
LS CSA Control Flow FCALLA Fast Call Absolute TC1.6
LS CSA Control Flow FCALLI Fast Call Indirect TC1.6
LS CSA Control Flow FRET Return from Fast Call TC1.6
LS Arithmetic GE.A Greater Than or Equal Address
LS Sync ISYNC Synchronize Instructions
LS Control Flow J Jump Unconditional
LS Control Flow JA Jump Unconditional Absolute
LS Control Flow JEQ.A Jump if Equal Address
LS Control Flow JI Jump Indirect
LS Control Flow JL Jump and Link
LS Control Flow JLA Jump and Link Absolute
LS Control Flow JLI Jump and Link Indirect
LS Control Flow JNE.A Jump if Not Equal Address
LS Control Flow JNZ.A Jump if Not Equal to Zero Address
LS Control Flow JZ.A Jump if Zero Address
LS Load LD.A Load Word to Address Register
LS Load LD.B Load Byte TC1.6*
LS Load LD.BU Load Byte Unsigned TC1.6*
LS Load LD.D Load Double-word
LS Load LD.DA Load Double-word to Address Register
LS Load LD.H Load Half-word TC1.6*
LS Load LD.HU Load Half-word Unsigned TC1.6*
LS Load LD.Q Load Half-word Signed Fraction
LS Load LD.W Load Word
LS Load LDLCX Load Lower Context
LS Store LDMST Load-Modify-Store
LS Load LDUCX Load Upper Context
LS Load LEA Load Effective Address
LS Load LHA Load High Address TC1.6.2
LS Control Flow LOOP Loop
LS Control Flow LOOPU Loop Unconditional
LS Arithmetic LT.A Less Than Address
LS Move MFCR Move From Core Register
LS Move MOV.A Move Value to Address Register
LS Move MOV.AA Move Address from Address Register
LS Move MOV.D Move Address to Data Register
LS Move MOVH.A Move High to Address
LS Move MTCR Move To Core Register
LS Arithmetic NE.A Not Equal Address
LS Arithmetic NEZ.A Not Equal Zero Address
LS Arithmetic NOP No Operation
LS Trap and Interrupt RESTORE Restore TC1.6
LS CSA Control Flow RET Return from Call
LS CSA Control Flow RFE Return From Exception
LS CSA Control Flow RFM Return From Monitor
LS CSA Control Flow RSLCX Restore Lower Context
LS Store ST.A Store Word from Address Register TC1.6*
LS Store ST.B Store Byte TC1.6*
LS Store ST.D Store Double-word
LS Store ST.DA Store Double-word from Address Registers
LS Store ST.H Store Half-word TC1.6*
LS Store ST.Q Store Half-word Signed Fraction
LS Store ST.T Store Bit
LS Store ST.W Store Word
LS Store STLCX Store Lower Context
LS Store STUCX Store Upper Context
LS Arithmetic SUB.A Subtract Address
LS CSA Control Flow SVLCX Save Lower Context
LS Load SWAP.W Swap with Data Register
LS Load SWAPMSK.W Swap under Mask TC1.6
LS CSA Control Flow SYSCALL System Call
LS Trap and Interrupt TRAPSV Trap on Sticky Overflow
LS Trap and Interrupt TRAPV Trap on Overflow
LS Trap and Interrupt WAIT Wait TC1.6
IP Arithmetic ABS Absolute Value
IP Arithmetic ABS.B Absolute Value Packed Byte
IP Arithmetic ABS.H Absolute Value Packed Half-word
IP Arithmetic ABSDIF Absolute Value of Difference
IP Arithmetic ABSDIF.B Absolute Value of Difference Packed Byte
IP Arithmetic ABSDIF.H Absolute Value of Difference Packed Half-word
IP Arithmetic ABSDIFS Absolute Value of Difference with Saturation
IP Arithmetic ABSDIFS.H Absolute Value of Difference Packed Half-word with Saturation
IP Arithmetic ABSS Absolute Value with Saturation
IP Arithmetic ABSS.H Absolute Value Packed Half-word with Saturation
IP Arithmetic ADD Add
IP Arithmetic ADD.B Add Packed Byte
IP Arithmetic ADD.H Add Packed Half-word
IP Arithmetic ADDC Add with Carry
IP Arithmetic ADDI Add Immediate
IP Arithmetic ADDIH Add Immediate High
IP Arithmetic ADDS Add Signed with Saturation
IP Arithmetic ADDS.H Add Signed Packed Half-word with Saturation
IP Arithmetic ADDS.HU Add Unsigned Packed Half-word with Saturation
IP Arithmetic ADDS.U Add Unsigned with Saturation
IP Arithmetic ADDX Add Extended
IP Logical AND Bitwise AND
IP Logical AND.AND.T Accumulating Bit Logical AND-AND
IP Logical AND.ANDN.T Accumulating Bit Logical AND-AND-Not
IP Logical AND.NOR.T Accumulating Bit Logical AND-NOR
IP Logical AND.OR.T Accumulating Bit Logical AND-OR
IP Logical AND.EQ Equal Accumulating
IP Logical AND.GE Greater Than or Equal Accumulating
IP Logical AND.GE.U Greater Than or Equal Accumulating Unsigned
IP Logical AND.LT Less Than Accumulating
IP Logical AND.LT.U Less Than Accumulating Unsigned
IP Logical AND.NE Not Equal Accumulating
IP Logical AND.T Bit Logical AND
IP Logical ANDN Bitwise AND-Not
IP Logical ANDN.T Bit Logical AND-Not
IP Coprocessor 0 BMERGE Bit Merge
IP Coprocessor 0 BSPLIT Bit Split
IP Arithmetic CADD Conditional Add
IP Arithmetic CADDN Conditional Add-Not
IP Count CLO Count Leading Ones
IP Count CLO.H Count Leading Ones in Packed Half-words
IP Count CLS Count Leading Signs
IP Count CLS.H Count Leading Signs in Packed Half-words
IP Count CLZ Count Leading Zeros
IP Count CLZ.H Count Leading Zeros in Packed Half-words
IP Move CMOV (16-bit) Conditional Move (16-bit)
IP Move CMOVN (16-bit) Conditional Move-Not (16-bit)
IP Coprocessor 0 CRC32.B CRC32 Byte TC1.6.2
IP Coprocessor 0 CRC32B.W CRC32 (TC1.6) CRC32 Word Big-Endian TC1.6
IP Coprocessor 0 CRC32L.W CRC32 Word Little-Endian TC1.6.2
IP Coprocessor 0 CRCN User-Defined CRC TC1.6.2
IP Arithmetic CSUB Conditional Subtract
IP Arithmetic CSUBN Conditional Subtract-Not
IP Extract DEXTR Extract from Double Register
IP Integer Divide DVADJ Divide-Adjust
IP Integer Divide DIV Divide TC1.6
IP Integer Divide DIV.U Divide Unsigned TC1.6
IP Integer Divide DVINIT Divide-Initialization Word
IP Integer Divide DVINIT.U Divide-Initialization Word Unsigned
IP Integer Divide DVINIT.B Divide-Initialization Byte
IP Integer Divide DVINIT.BU Divide-Initialization Byte Unsigned
IP Integer Divide DVINIT.H Divide-Initialization Half-word
IP Integer Divide DVINIT.HU Divide-Initialization Half-word Unsigned
IP Integer Divide DVSTEP Divide-Step
IP Integer Divide DVSTEP.U Divide-Step Unsigned
IP Compare EQ Equal
IP Compare EQ.B Equal Packed Byte
IP Compare EQ.H Equal Packed Half-word
IP Compare EQ.W Equal Packed Word
IP Compare EQANY.B Equal Any Byte
IP Compare EQANY.H Equal Any Half-word
IP Extract EXTR Extract Bit Field
IP Extract EXTR.U Extract Bit Field Unsigned
IP Compare GE Greater Than or Equal
IP Compare GE.U Greater Than or Equal Unsigned
IP Extract IMASK Insert Mask
IP Extract INS.T Insert Bit
IP Extract INSN.T Insert Bit-Not
IP Extract INSERT Insert Bit Field
IP Coprocessor 0 IXMAX Find Maximum Index
IP Coprocessor 0 IXMAX.U Find Maximum Index (unsigned)
IP Coprocessor 0 IXMIN Find Minimum Index
IP Coprocessor 0 IXMIN.U Find Minimum Index (unsigned)
IP Control Flow JEQ Jump if Equal TC1.6*
IP Control Flow JGE Jump if Greater Than or Equal
IP Control Flow JGE.U Jump if Greater Than or Equal Unsigned
IP Control Flow JGEZ (16-bit) Jump if Greater Than or Equal to Zero (16-bit)
IP Control Flow JGTZ (16-bit) Jump if Greater Than Zero (16-bit)
IP Control Flow JLEZ (16-bit) Jump if Less Than or Equal to Zero (16-bit)
IP Control Flow JLT Jump if Less Than
IP Control Flow JLT.U Jump if Less Than Unsigned
IP Control Flow JLTZ (16-bit) Jump if Less Than Zero (16-bit)
IP Control Flow JNE Jump if Not Equal TC1.6*
IP Control Flow JNED Jump if Not Equal and Decrement
IP Control Flow JNEI Jump if Not Equal and Increment
IP Control Flow JNZ (16-bit) Jump if Not Equal to Zero (16-bit)
IP Control Flow JNZ.T Jump if Not Equal to Zero Bit
IP Control Flow JZ (16-bit) Jump if Zero (16-bit)
IP Control Flow JZ.T Jump if Zero Bit
IP Compare LT Less Than
IP Compare LT.U Less Than Unsigned
IP Compare LT.B Less Than Packed Byte
IP Compare LT.BU Less Than Packed Byte Unsigned
IP Compare LT.H Less Than Packed Half-word
IP Compare LT.HU Less Than Packed Half-word Unsigned
IP Compare LT.W Less Than Packed Word
IP Compare LT.WU Less Than Packed Word Unsigned
IP Multiply Accumulate MADD Multiply-Add
IP Multiply Accumulate MADDS Multiply-Add, Saturated
IP Multiply Accumulate MADD.H Packed Multiply-Add Q Format
IP Multiply Accumulate MADDS.H Packed Multiply-Add Q Format, Saturated
IP Multiply Accumulate MADD.Q Multiply-Add Q Format
IP Multiply Accumulate MADDS.Q Multiply-Add Q Format, Saturated
IP Multiply Accumulate MADD.U Multiply-Add Unsigned
IP Multiply Accumulate MADDS.U Multiply-Add Unsigned, Saturated
IP Multiply Accumulate MADDM.H Packed Multiply-Add Q Format Multi-precision
IP Multiply Accumulate MADDMS.H Packed Multiply-Add Q Format Multi-precision, Saturated
IP Multiply Accumulate MADDR.H Packed Multiply-Add Q Format with Rounding
IP Multiply Accumulate MADDRS.H Packed Multiply-Add Q Format with Rounding, Saturated
IP Multiply Accumulate MADDR.Q Multiply-Add Q Format with Rounding
IP Multiply Accumulate MADDRS.Q Multiply-Add Q Format with Rounding, Saturated
IP Multiply Accumulate MADDSU.H Packed Multiply-Add/Subtract Q Format
IP Multiply Accumulate MADDSUS.H Packed Multiply-Add/Subtract Q Format Saturated
IP Multiply Accumulate MADDSUM.H Packed Multiply-Add/Subtract Q Format Multi-precision
IP Multiply Accumulate MADDSUMS.H Packed Multiply-Add/Subtract Q Format Multi-precision Saturated
IP Multiply Accumulate MADDSUR.H Packed Multiply-Add/Subtract Q Format with Rounding
IP Multiply Accumulate MADDSURS.H Packed Multiply-Add/Subtract Q Format with Rounding Saturated
IP Arithmetic MAX Maximum Value
IP Arithmetic MAX.U Maximum Value Unsigned
IP Arithmetic MAX.B Maximum Value Packed Byte
IP Arithmetic MAX.BU Maximum Value Packed Byte Unsigned
IP Arithmetic MAX.H Maximum Value Packed Half-word
IP Arithmetic MAX.HU Maximum Value Packed Half-word Unsigned
IP Arithmetic MIN Minimum Value
IP Arithmetic MIN.U Minimum Value Unsigned
IP Arithmetic MIN.B Minimum Value Packed Byte
IP Arithmetic MIN.BU Minimum Value Packed Byte Unsigned
IP Arithmetic MIN.H Minimum Value Packed Half-word
IP Arithmetic MIN.HU Minimum Value Packed Half-word Unsigned
IP Move MOV Move
IP Move MOV.U Move Unsigned
IP Move MOVH Move High
IP Multiply Accumulate MSUB Multiply-Subtract
IP Multiply Accumulate MSUBS Multiply-Subtract, Saturated
IP Multiply Accumulate MSUB.H Packed Multiply-Subtract Q Format
IP Multiply Accumulate MSUBS.H Packed Multiply-Subtract Q Format, Saturated
IP Multiply Accumulate MSUB.Q Multiply-Subtract Q Format
IP Multiply Accumulate MSUBS.Q Multiply-Subtract Q Format, Saturated
IP Multiply Accumulate MSUB.U Multiply-Subtract Unsigned
IP Multiply Accumulate MSUBS.U Multiply-Subtract Unsigned, Saturated
IP Multiply Accumulate MSUBAD.H Packed Multiply-Subtract/Add Q Format
IP Multiply Accumulate MSUBADS.H Packed Multiply-Subtract/Add Q Format, Saturated
IP Multiply Accumulate MSUBADM.H Packed Multiply-Subtract/Add Q Format-Multi-precision
IP Multiply Accumulate MSUBADMS.H Packed Multiply-Subtract/Add Q Format-Multi-precision, Saturated
IP Multiply Accumulate MSUBADR.H Packed Multiply-Subtract/Add Q Format with Rounding
IP Multiply Accumulate MSUBADRS.H Packed Multiply-Subtract/Add Q Format with Rounding, Saturated
IP Multiply Accumulate MSUBM.H Packed Multiply-Subtract Q Format-Multi-precision
IP Multiply Accumulate MSUBMS.H Packed Multiply-Subtract Q Format-Multi-precision, Saturated
IP Multiply Accumulate MSUBR.H Packed Multiply-Subtract Q Format with Rounding
IP Multiply Accumulate MSUBRS.H Packed Multiply-Subtract Q Format with Rounding, Saturated
IP Multiply Accumulate MSUBR.Q Multiply-Subtract Q Format with Rounding
IP Multiply Accumulate MSUBRS.Q Multiply-Subtract Q Format with Rounding, Saturated
IP Multiply MUL Multiply
IP Multiply MULS Multiply, Saturated
IP Multiply MUL.H Packed Multiply Q Format
IP Multiply MUL.Q Multiply Q Format
IP Multiply MUL.U Multiply Unsigned
IP Multiply MULS.U Multiply Unsigned, Saturated
IP Multiply MULM.H Packed Multiply Q Format-Multi-precision
IP Multiply MULR.H Packed Multiply Q Format with Rounding
IP Multiply MULR.Q Multiply Q Format with Rounding
IP Logical NAND Bitwise NAND
IP Logical NAND.T Bit Logical NAND
IP Compare NE Not Equal
IP Logical NOR Bitwise NOR
IP Logical NOR.T Bit Logical NOR
IP Logical NOT (16-bit) Bitwise Complement NOT (16-bit)
IP Logical OR Bitwise OR
IP Logical OR.AND.T Accumulating Bit Logical OR-AND
IP Logical OR.ANDN.T Accumulating Bit Logical OR-AND-Not
IP Logical OR.NOR.T Accumulating Bit Logical OR-NOR
IP Logical OR.OR.T Accumulating Bit Logical OR-OR
IP Logical OR.EQ Equal Accumulating
IP Logical OR.GE Greater Than or Equal Accumulating
IP Logical OR.GE.U Greater Than or Equal Accumulating Unsigned
IP Logical OR.LT Less Than Accumulating
IP Logical OR.LT.U Less Than Accumulating Unsigned
IP Logical OR.NE Not Equal Accumulating
IP Logical OR.T Bit Logical OR
IP Logical ORN Bitwise OR-Not
IP Logical ORN.T Bit Logical OR-Not
IP Coprocessor 0 PACK Pack
IP Coprocessor 0 PARITY Parity
IP Count POPCNT.W Population Count Word TC1.6.2
IP Trap and Interrupt RSTV Reset Overflow Bits
IP Arithmetic RSUB Reverse-Subtract
IP Arithmetic RSUBS Reverse-Subtract with Saturation
IP Arithmetic RSUBS.U Reverse-Subtract Unsigned with Saturation
IP Arithmetic SAT.B Saturate Byte
IP Arithmetic SAT.BU Saturate Byte Unsigned
IP Arithmetic SAT.H Saturate Half-word
IP Arithmetic SAT.HU Saturate Half-word Unsigned
IP Arithmetic SEL Select
IP Arithmetic SELN Select-Not
IP Shift SH Shift
IP Shift SH.EQ Shift Equal
IP Shift SH.GE Shift Greater Than or Equal
IP Shift SH.GE.U Shift Greater Than or Equal Unsigned
IP Shift SH.H Shift Packed Half-words
IP Shift SH.LT Shift Less Than
IP Shift SH.LT.U Shift Less Than Unsigned
IP Shift SH.NE Shift Not Equal
IP Shift SH.AND.T Accumulating Shift-AND
IP Shift SH.ANDN.T Accumulating Shift-AND-Not
IP Shift SH.NAND.T Accumulating Shift-NAND
IP Shift SH.NOR.T Accumulating Shift-NOR
IP Shift SH.OR.T Accumulating Shift-OR
IP Shift SH.ORN.T Accumulating Shift-OR-Not
IP Shift SH.XNOR.T Accumulating Shift-XNOR
IP Shift SH.XOR.T Accumulating Shift-XOR
IP Shift SHA Arithmetic Shift
IP Shift SHA.H Arithmetic Shift Packed Half-words
IP Shift SHAS Arithmetic Shift with Saturation
IP Arithmetic SHUFFLE Byte Shuffle TC1.6.2
IP Arithmetic SUB Subtract
IP Arithmetic SUB.B Subtract Packed Byte
IP Arithmetic SUB.H Subtract Packed Half-word
IP Arithmetic SUBC Subtract With Carry
IP Arithmetic SUBS Subtract Signed with Saturation
IP Arithmetic SUBS.U Subtract Unsigned with Saturation
IP Arithmetic SUBS.H Subtract Packed Half-word with Saturation
IP Arithmetic SUBS.HU Subtract Packed Half-word Unsigned with Saturation
IP Arithmetic SUBX Subtract Extended
IP Coprocessor 0 UNPACK Unpack Floating Point
IP Logical XNOR Bitwise XNOR
IP Logical XNOR.T Bit Logical XNOR
IP Logical XOR Bitwise XOR
IP Logical XOR.EQ Equal Accumulating
IP Logical XOR.GE Greater Than or Equal Accumulating
IP Logical XOR.GE.U Greater Than or Equal Accumulating Unsigned
IP Logical XOR.LT Less Than Accumulating
IP Logical XOR.LT.U Less Than Accumulating Unsigned
IP Logical XOR.NE Not Equal Accumulating
IP Logical XOR.T Bit Logical XOR
FPU Floating Point ADD.F Add Float
FPU Floating Point CMP.F Compare Float
FPU Floating Point DIV.F Divide Float
FPU Floating Point FTOI Float to Integer
FPU Floating Point FTOIZ Float to Integer, Round towards Zero TC1.3.1
FPU Floating Point FTOQ31 Float to Fraction
FPU Floating Point FTOQ31Z Float to Fraction, Round towards Zero TC1.3.1
FPU Floating Point FTOU Float to Unsigned
FPU Floating Point FTOUZ Float to Unsigned, Round towards Zero TC1.3.1
FPU Floating Point FTOHP Single Precision to Half Precision TC1.6.2
FPU Floating Point HPTOF Half Precision to Single Precision TC1.6.2
FPU Floating Point ITOF Integer to Float
FPU Floating Point MADD.F Multiply Add Float
FPU Floating Point MSUB.F Multiply Subtract Float
FPU Floating Point MUL.F Multiply Float
FPU Floating Point Q31TOF Fraction to Floating-point
FPU Floating Point QSEED.F Inverse Square Root Seed
FPU Floating Point SUB.F Subtract Float
FPU Floating Point UPDFL Update Flags
FPU Floating Point UTOF Unsigned to Floating-point

See Also

External Links