background image

ADSP-BF53x/BF56x Blackfin Processor Programming Reference

C-29 

Instruction Opcodes

Move Register

0xC00B 3800—
0xC00B 39C0

1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1

0 0 1 1 1 0 0 Dreg_eve

n #

0 0 0 0 0 0

Dreg_even = A0

Move Register

0xC08B 3800—
0xC08B 39C0

1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1

0 0 1 1 1 0 0 Dreg_eve

n #

0 0 0 0 0 0

Dreg_even = A0 (FU)

Move Register

0xC12B 3800—
0xC12B 39C0

1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1

0 0 1 1 1 0 0 Dreg_eve

n #

0 0 0 0 0 0

Dreg_even = A0 (ISS2)

Move Register

0xC00F 1800—
0xC00F 19C0

1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1

0 0 0 1 1 0 0 Dreg_eve

n # of the 

pair con-

taining 

Dreg_od

d

0 0 0 0 0 0

Dreg_odd = A1

Move Register

0xC08F 1800—
0xC08F 19C0

1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1

0 0 0 1 1 0 0 Dreg_eve

n # of the 

pair con-

taining 

Dreg_od

d

0 0 0 0 0 0

Dreg_odd = A1 (FU)

Table C-11. Move Instructions (Sheet 2 of 9)

Instruction 
and Version

Bin

Opcode  Range 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Содержание ADSP-BF53x Blackfin

Страница 1: ...a ADSP BF53x BF56x Blackfin Processor Programming Reference Revision 1 2 February 2007 Part Number 82 000556 01 Analog Devices Inc One Technology Way Norwood Mass 02062 9106...

Страница 2: ...to be accurate and reliable However no responsibility is assumed by Analog Devices for its use nor for any infringement of patents or other rights of third parties which may result from its use No lic...

Страница 3: ...New in This Manual xxvii Technical or Customer Support xxviii Supported Processors xxix Product Information xxix MyAnalog com xxx Processor Product Information xxx Related Documents xxxi Online Techni...

Страница 4: ...ets xxxv Conventions xxxvi INTRODUCTION Core Architecture 1 1 Memory Architecture 1 4 Internal Memory 1 5 External Memory 1 6 I O Memory Space 1 6 Event Handling 1 6 Core Event Controller CEC 1 8 Syst...

Страница 5: ...19 Automatic Circular Addressing 1 21 COMPUTATIONAL UNITS Using Data Formats 2 4 Binary String 2 4 Unsigned 2 4 Signed Numbers Two s Complement 2 5 Fractional Representation 1 15 2 5 Register Files 2...

Страница 6: ...Logic Unit ALU 2 26 ALU Operations 2 26 Single 16 Bit Operations 2 27 Dual 16 Bit Operations 2 27 Quad 16 Bit Operations 2 28 Single 32 Bit Operations 2 29 Dual 32 Bit Operations 2 29 ALU Instruction...

Страница 7: ...Shifter 2 48 Shifter Operations 2 48 Two Operand Shifts 2 49 Immediate Shifts 2 49 Register Shifts 2 50 Three Operand Shifts 2 50 Immediate Shifts 2 50 Register Shifts 2 51 Bit Test Set Clear Toggle...

Страница 8: ...State 3 10 Reset State 3 10 System Reset and Powerup 3 12 Hardware Reset 3 13 SYSCR Register 3 14 Software Resets and Watchdog Timer 3 14 SWRST Register 3 15 Core Only Software Reset 3 16 Core and Sys...

Страница 9: ...imensional Loops 4 24 Loop Unrolling 4 26 Saving and Resuming Loops 4 27 Example Code for Using Hardware Loops in an ISR 4 28 Events and Interrupts 4 29 System Interrupt Processing 4 31 System Periphe...

Страница 10: ...pt 4 47 Core Timer Interrupt 4 47 General purpose Interrupts IVG7 IVG15 4 47 Interrupt Processing 4 48 Global Enabling Disabling of Interrupts 4 48 Servicing Interrupts 4 48 Software Interrupts 4 50 N...

Страница 11: ...ceptions and the Pipeline 4 67 Deferring Exception Processing 4 68 Example Code for an Exception Handler 4 68 Example Code for an Exception Routine 4 70 ADDRESS ARITHMETIC UNIT Addressing With the AAU...

Страница 12: ...rview of On Chip Level 1 L1 Memory 6 2 Overview of Scratchpad Data SRAM 6 4 Overview of On Chip Level 2 L2 Memory 6 4 L1 Instruction Memory 6 5 IMEM_CONTROL Register 6 5 L1 Instruction SRAM 6 7 L1 Ins...

Страница 13: ...r 6 24 L1 Data SRAM 6 27 L1 Data Cache 6 29 Example of Mapping Cacheable Address Space 6 30 Data Cache Access 6 33 Cache Write Method 6 35 IPRIO Register and Write Buffer Depth 6 35 Data Cache Control...

Страница 14: ...ns 6 54 ICPLB_DATAx Registers 6 55 DCPLB_DATAx Registers 6 57 DCPLB_ADDRx Registers 6 59 ICPLB_ADDRx Registers 6 60 DCPLB_STATUS and ICPLB_STATUS Registers 6 61 DCPLB_FAULT_ADDR and ICPLB_FAULT_ADDR R...

Страница 15: ...5 Call 7 8 RTS RTI RTX RTN RTE Return 7 10 LSETUP LOOP 7 13 LOAD STORE Load Immediate 8 3 Load Pointer Register 8 7 Load Data Register 8 10 Load Half Word Zero Extended 8 15 Load Half Word Sign Extend...

Страница 16: ...l Word Zero Extended 9 10 Move Half to Full Word Sign Extended 9 13 Move Register Half 9 15 Move Byte Zero Extended 9 23 Move Byte Sign Extended 9 25 STACK CONTROL SP Push 10 2 SP Push Multiple 10 5 S...

Страница 17: ...ent 12 4 OR 12 6 Exclusive OR 12 8 BXORSHIFT BXOR 12 10 BIT OPERATIONS BITCLR 13 2 BITSET 13 4 BITTGL 13 6 BITTST 13 8 DEPOSIT 13 10 EXTRACT 13 16 BITMUX 13 21 ONES One s Population Count 13 26 SHIFT...

Страница 18: ...ADJ 15 26 MAX 15 30 MIN 15 32 Modify Decrement 15 34 Modify Increment 15 37 Multiply 16 Bit Operands 15 43 Multiply 32 Bit Operands 15 51 Multiply and Multiply Accumulate to Accumulator 15 53 Multiply...

Страница 19: ...Interrupts 16 15 RAISE Force Interrupt Reset 16 17 EXCPT Force Exception 16 20 Test and Set Byte Atomic 16 22 No Op 16 25 CACHE CONTROL PREFETCH 17 3 FLUSH 17 5 FLUSHINV 17 7 IFLUSH 17 9 VIDEO PIXEL O...

Страница 20: ...VECTOR OPERATIONS Add on Sign 19 3 VIT_MAX Compare Select 19 8 Vector ABS 19 15 Vector Add Subtract 19 18 Vector Arithmetic Shift 19 23 Vector Logical Shift 19 28 Vector MAX 19 32 Vector MIN 19 35 Vec...

Страница 21: ...isters 21 6 WPIACTL Register 21 7 Data Address Watchpoints 21 10 WPDAn Registers 21 10 WPDACNTn Registers 21 11 WPDACTL Register 21 12 WPSTAT Register 21 14 Trace Unit 21 15 TBUFCTL Register 21 16 TBU...

Страница 22: ...perating Modes and States A 1 ADSP BF535 Flags A 2 CORE MMR ASSIGNMENTS L1 Data Memory Controller Registers B 1 L1 Instruction Memory Controller Registers B 4 Interrupt Controller Registers B 6 Debug...

Страница 23: ...13 Load Store Instructions C 16 Move Instructions C 28 Stack Control Instructions C 37 Control Code Bit Management Instructions C 39 Logical Operations Instructions C 43 Bit Operations Instructions C...

Страница 24: ...in Processor Programming Reference NUMERIC FORMATS Unsigned or Signed Two s complement Format D 1 Integer or Fractional Data Formats D 1 Binary Multiplication D 5 Fractional Mode And Integer Mode D 6...

Страница 25: ...this are noted in Chapter 6 Memory The manual provides information on how assembly instructions execute on the Blackfin processor s architecture along with reference information about processor opera...

Страница 26: ...ibes Idle state and Reset state Chapter 4 Program Sequencer Describes the operation of the program sequencer which controls program flow by providing the address of the next instruction to be executed...

Страница 27: ...ADSP BF535 Considerations Provides a description of the status flag bits for the ADSP BF535 processor only Appendix B Core MMR Assignments Lists the core memory mapped registers their addresses and cr...

Страница 28: ...analog com processors manuals E mail tools questions to processor tools support analog com E mail processor questions to processor support analog com World wide support processor europe analog com Eur...

Страница 29: ...amily of high performance 32 bit floating point processors that can be used in speech sound graphics and imaging applications VisualDSP currently supports the following SHARC families ADSP 2106x ADSP...

Страница 30: ...e mail notifications containing updates to the Web pages that meet your interests MyAnalog com provides access to books application notes data sheets code examples and more Registration Visit www myan...

Страница 31: ...FTP Web site at ftp ftp analog com or ftp 137 71 25 69 ftp ftp analog com Related Documents The following publications that describe the ADSP BF53x BF56x proces sors and related processors can be orde...

Страница 32: ...nd Preprocessor Manual VisualDSP Linker and Utilities Manual VisualDSP Kernel VDK User s Guide Visit the Technical Library Web site to access all processor and tools manuals and data sheets http www a...

Страница 33: ...and Index commands Open online Help from context sensitive user interface items tool bar buttons menu commands and windows Accessing Documentation From Windows In addition to any shortcuts you may ha...

Страница 34: ...the Windows Start Button Access VisualDSP online Help by clicking the Start button and choosing Programs Analog Devices VisualDSP and VisualDSP Documentation Access the PDF files by clicking the Start...

Страница 35: ...e reference and instruction set reference manuals may be ordered through the Literature Center at 1 800 ANALOGD 1 800 262 5643 or downloaded from the Analog Devices Web site Manuals may be ordered by...

Страница 36: ...keywords and feature names are in text with letter gothic font filename Non keyword placeholders appear in text with italic style format SWRST Software Reset register Register names appear in UPPERCA...

Страница 37: ...related topic In the online version of this book the word Note appears instead of this symbol Caution Incorrect device operation may result if Caution Device damage may result if A Caution identifies...

Страница 38: ...Conventions xxxviii ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 39: ...th on chip L2 memory have slightly different system interfaces Differences and commonalities at a global level are discussed in Chapter 6 Memory For a full description of the system architecture beyon...

Страница 40: ...ns come from the multiported register file and instruction constant fields Figure 1 1 Processor Core Architecture SEQUENCER ALIGN DECODE LOOP BUFFER 16 16 8 8 8 8 40 40 A0 A1 BARREL SHIFTER DATA ARITH...

Страница 41: ...ions two 16 bit ALU operations can be performed simultaneously on register pairs a 16 bit high half and 16 bit low half of a compute register By also using the second ALU quad 16 bit operations are po...

Страница 42: ...access to a subset of system resources thus providing a protected software environment Supervisor and Emula tion modes have unrestricted access to the system and core resources The Blackfin processor...

Страница 43: ...nternal memory and the external memory spaces Internal Memory At a minimum each Blackfin processors has three blocks of on chip mem ory that provide high bandwidth access to the core L1 instruction me...

Страница 44: ...if each is fully populated with 1M byte of memory I O Memory Space Blackfin processors do not define a separate I O space All resources are mapped through the flat 32 bit address space Control regist...

Страница 45: ...hronous to program flow That is the exception is taken before the instruction is allowed to complete Conditions such as data alignment violations and undefined instructions cause exceptions Interrupts...

Страница 46: ...heral interrupt sources to the prioritized gen eral purpose interrupt inputs of the CEC Although the processor provides a default mapping the user can alter the mappings and priorities of interrupt ev...

Страница 47: ...edded spaces Tokens include numbers register names keywords user identifiers and also some multicharacter special symbols like or Instruction Delimiting A semicolon must terminate every instruction Se...

Страница 48: ...n a general comment it issues an assembler warning A comment functions as white space Notation Conventions This manual and the assembler use the following conventions Register names are alphabetical f...

Страница 49: ...gister names are reserved and may not be used as program identifiers This manual uses the following conventions When there is a choice of any one register within a register group this manual shows the...

Страница 50: ...integer that must be an even number Loop PC relative signed values are designated as lppcrel with the following modifiers the decimal number indicates how many bits the value can include for example...

Страница 51: ...sters R0 R1 R2 R3 R4 R5 R6 and R7 that normally contain data for manipulation Abbreviated D register or Dreg Data Registers can be accessed as 32 bit registers or optionally as two independent 16 bit...

Страница 52: ...eg Clear Lreg to disable circular addressing for the corresponding Ireg Example Clear L3 to disable circular addressing for I3 Base Registers The set of 32 bit registers B0 B1 B2 B3 that normally cont...

Страница 53: ...e architecture Table 1 3 Arithmetic Status Flag Summary Flag Description AC0 Carry ALU0 AC0_COPY Carry ALU0 copy AC1 Carry ALU1 AN Negative AQ Quotient AV0 Accumulator 0 Overflow AVS0 Accumulator 0 St...

Страница 54: ...In DSP instructions that assume placement of a binal point for example in computing sign bits for normalization or for alignment purposes the binal point convention depends on the size of the registe...

Страница 55: ...n hold with the same sign as the original If an operation would otherwise cause a positive value to overflow and become negative instead saturation limits the result to the maximum positive value for...

Страница 56: ...h saturation however a left shift of 3 or more places would always produce the largest positive 16 bit number 0x7FFF decimal 32 767 Another common example is copying the lower half of a 32 bit registe...

Страница 57: ...ew number will have only M bits of precision where N M so N M bits of precision are removed from the number in the process of rounding The round to nearest method returns the closest number to the ori...

Страница 58: ...e significant bits representing a number is to simply mask off the N M lower bits This process is known as trunca tion and results in a relatively large bias Figure 1 3 shows other examples of roundin...

Страница 59: ...L register must be an unsigned number with magnitude less than 231 The magnitude of the modifier should be less than the length of the circular buffer The initial location of the pointer I should be w...

Страница 60: ...ify Decrement instructions Such instructions are still affected by circular addressing if enabled Disable circular addressing for an Ireg by clearing the Lreg that corre sponds to the Ireg used in the...

Страница 61: ...shifter executes logical shifts and arithmetic shifts and performs bit packing and extraction The video ALUs perform Single Instruction Multiple Data SIMD logical operations on specific 8 bit data op...

Страница 62: ...uctions have unrestricted access to the data registers in the Data Register File Multifunction opera tions may have restrictions that are described in the section for that particular operation Two add...

Страница 63: ...UFFER 16 16 8 8 8 8 40 40 A0 A1 BARREL SHIFTER DATA ARITHMETIC UNIT CONTROL UNIT R7 H R6 H R5 H R4 H R3 H R2 H R1 H R0 H R7 L R6 L R5 L R4 L R3 L R2 L R1 H R0 L ASTAT 40 40 32 32 32 32 32 32 32 LD0 LD...

Страница 64: ...sor family arithmetic signed numbers are always in two s complement format These processors do not use signed magnitude one s complement binary coded decimal BCD or excess n formats Binary String The...

Страница 65: ...tic is optimized for numerical values in a fractional binary format denoted by 1 15 one dot fifteen In the 1 15 format 1 sign bit the Most Significant Bit MSB and 15 fractional bits represent values f...

Страница 66: ...r addressing operations The DAG registers are dedicated registers that manage zero over head circular buffers for DSP operations For more information on Pointer and DAG registers see Chapter 5 Address...

Страница 67: ...bit register R0 may be regarded as two independent register halves R0 L and R0 H For example these instructions represent a 32 bit and a 16 bit operation R2 R1 R2 32 bit addition R2 L R1 H R0 L 16 bi...

Страница 68: ...ocessor has two dedicated 40 bit accumulator registers called A0 and A1 Each can be referred to as its 16 bit low half An L or high half An H plus its 8 bit extension An X Each can also be referred to...

Страница 69: ...e register Sysreg denotes the system registers ASTAT SEQSTAT SYSCFG RETI RETX RETN RETE or RETS LC 1 0 LT 1 0 LB 1 0 CYCLES and CYCLES2 Preg denotes any Pointer register FP or SP register Dreg_even de...

Страница 70: ...the instruction Indicates the flag is cleared Indicates no effect Table 2 1 Register File Instruction Summary Instruction ASTAT Status Flags AZ AN AC0 AC0_COPY AC1 AV0 AVS AV1 AV1S CC V V_COPY VS all...

Страница 71: ...s for data that resides in memory in the register file and in the accumulators In the table the letter d represents one bit and the letter s represents one signed bit An H Dreg_hi Dreg_lo A0 Dreg_hi A...

Страница 72: ...tions sign extend signed 16 bit half words and 8 bit bytes Other instructions manipulate data as 32 bit numbers In addition two 16 bit half words or four 8 bit bytes can be manipulated as 32 bit value...

Страница 73: ...d dddd 16 0 Unsigned Half Word dddd dddd dddd dddd 0000 0000 0000 0000 dddd dddd dddd dddd 16 0 Signed Half Word sddd dddd dddd dddd ssss ssss ssss ssss sddd dddd dddd dddd 8 0 Unsigned Byte dddd dddd...

Страница 74: ...s is set if the Most Signifi cant Bit MSB changes in a manner not predicted by the signs of the operands and the nature of the operation For example adding two posi tive numbers must generate a positi...

Страница 75: ...t to be in 1 31 format which can be rounded to 1 15 format The resulting format appears in Figure 2 5 on page 2 18 In the integer mode the left shift does not occur For example if the oper ands are in...

Страница 76: ...unsigned Interpret flags Subtraction Signed or unsigned Interpret flags Logical Binary string Same as operands Division Explicitly signed or unsigned Same as operands Table 2 4 Multiplier Fractional...

Страница 77: ...s up with bit 1 of A0 which is bit 1 of A0 W The Least Significant Bit LSB is zero filled The fractional multiplier result format appears in Figure 2 5 For integer arithmetic the 32 bit product regist...

Страница 78: ...od uct with the current contents of the A0 or A1 register to produce the final 40 bit result Figure 2 5 Fractional Multiplier Results Format 31 31 31 31 31 31 31 31 31 30 29 28 27 26 25 24 23 22 21 20...

Страница 79: ...f precision whereas the new number will have only M bits of precision where N M The process of rounding then removes N M bits of precision from the number The RND_MOD bit in the ASTAT register determi...

Страница 80: ...ry between bit 15 and bit 16 Rounding can be specified as part of the instruction code When rounding is selected the output regis ter contains the rounded 16 bit result the accumulator is never rounde...

Страница 81: ...16 is forced to 0 This algorithm is employed on every rounding operation but is evident only when the bit patterns shown in the lower 16 bits of the next example are present Figure 2 7 Typical Unbias...

Страница 82: ...o s complement fraction this method returns 0 5 binary 0 1 The original fraction lies exactly midway between 0 5 and 0 0 binary 0 0 so this method rounds up Because it always rounds up this method is...

Страница 83: ...rations work normally This mode allows more efficient implementation of bit specified algorithms that use biased rounding for example the Global System for Mobile Communica tions GSM speech compressio...

Страница 84: ...tion of two 32 bit numbers biased rounding at bit 12 depositing the result in a half word R3 L R4 R5 RND20 performs an addition of two 32 bit numbers biased rounding at bit 20 depositing the result in...

Страница 85: ...version of AV1 AV1S Sticky A1 Overflow 0 Last result written from ALU to Data Register File register has not overflowed 1 Last result has overflowed V Dreg Overflow Sticky version of V AN Negative Re...

Страница 86: ...cal AND OR NOT XOR bitwise XOR Negate Functions ABS MAX MIN Round division primitives ALU Operations Primary ALU operations occur on ALU0 while parallel operations occur on ALU1 which performs a subse...

Страница 87: ...high half with no saturation Dual 16 Bit Operations In dual 16 bit operations any two 32 bit registers may be used as the input to the ALU considered as pairs of 16 bit operands An addition subtracti...

Страница 88: ...t inputs are presented to ALU1 as to ALU0 The instruction construct is identical to that of a dual 16 bit operation and input operands must be the same for both ALUs For example R3 R0 R1 R2 R0 R1 S pe...

Страница 89: ...registers P 5 0 SP FP L Instructions may not intermingle Pointer registers with Data registers For example R3 R1 R2 NS adds the 32 bit contents of R2 to the 32 bit contents of R1 and deposits the resu...

Страница 90: ...differences of the A0 and A1 registers For example R3 A0 A1 R4 A0 A1 S transfers to the result registers two 32 bit saturated sum and difference values of the ALU registers ALU Instruction Summary Tab...

Страница 91: ...bit register RND denotes rounding a half word RND12 denotes saturating the result of an addition or subtraction and rounding the result on bit 12 RND20 denotes saturating the result of an addition or...

Страница 92: ...0S AV1 AV1S V V_COPY VS AQ Dreg Dreg Dreg Dreg Dreg Dreg S Dreg Dreg Dreg Dreg Dreg Dreg Dreg_lo_hi Dreg_lo_hi Dreg_lo_hi Dreg_lo_hi Dreg_lo_hi Dreg_lo_hi S Dreg Dreg Dreg Dreg Dreg Dreg Dreg Dreg Dre...

Страница 93: ...n An An An An An An An An S An An S An An S Dreg_lo_hi Dreg RND Dreg_lo_hi Dreg Dreg RND12 Dreg_lo_hi Dreg Dreg RND12 Dreg_lo_hi Dreg Dreg RND20 Dreg_lo_hi Dreg Dreg RND20 Dreg_lo SIGNBITS Dreg Dreg_l...

Страница 94: ...ction division algorithm The division can be either signed or unsigned but both the dividend and divisor must be of the same type Details about using division and pro gramming examples are available i...

Страница 95: ...include Quad 8 Bit Add or Subtract Quad 8 Bit Average Quad 8 Bit Pack or Unpack Quad 8 Bit Subtract Absolute Accumulate Byte Align For more information about the operation of these instructions see Ch...

Страница 96: ...ulator register A1 or A0 The accumulator results can be saturated to 32 or 40 bits The multiplier result can also be written directly to a 16 or 32 bit destination register with optional rounding Each...

Страница 97: ...only in the A0 or A1 registers but also in a variety of 16 or 32 bit Data registers in the Data Register File Rounding or Saturating Multiplier Results On a multiply and accumulate operation the accum...

Страница 98: ...ow or underflow has occurred If the bit is set 1 an overflow or underflow has occurred The AV0S and AV1S bits are sticky bits Bit 24 V and bit 25 VS are set if overflow occurs in extracting the accumu...

Страница 99: ...n Summary Instruction ASTAT Status Flags AV0 AV0S AV1 AV1S V V_COPY VS Dreg_lo Dreg_lo_hi Dreg_lo_hi Dreg_hi Dreg_lo_hi Dreg_lo_hi Dreg Dreg_lo_hi Dreg_lo_hi An Dreg_lo_hi Dreg_lo_hi An Dreg_lo_hi Dre...

Страница 100: ...ned fraction No shift correction is made IU Input data operands are unsigned integer No shift correction is made T Input data operands are signed fraction When copying to the destination half register...

Страница 101: ...rands are signed fraction with no extension bits in the Accumulators at 32 bits Left shift correction of the product is performed as required This option is used for legacy GSM speech vocoder algorith...

Страница 102: ...ble at the MAC inputs provid ing four 16 bit operands to chose from One of the operands must be selected from the low half or the high half of one 32 bit word The other operand must be selected from t...

Страница 103: ...to a 40 bit adder subtracter which may add or subtract the new product from the contents of the Accumulator Result register or pass the new product directly to the Data Register File Results register...

Страница 104: ...bits If a 16 bit destination register is a low half then MAC0 is used if it is a high half then MAC1 is used For a 32 bit desti nation register either MAC0 or MAC1 is used If the destination register...

Страница 105: ...uction deposits the lower 16 bits of the multiply answer with any required saturation into the high half of R0 using MAC1 R0 R1 L R2 L Regardless of operand type the preceding operation deposits 32 bi...

Страница 106: ...n takes multiple cycles to execute For more information about the exact operation of this instruction refer to Chapter 15 Arith metic Operations This macro function is interruptable and does not modif...

Страница 107: ...s instruction represents two multiply and accumulate operations In one operation MAC1 the high half of R1 is multiplied by the low half of R2 and added to the contents of the A1 Accumulator In the sec...

Страница 108: ...sferred to a register Either a 16 or 32 bit register may be speci fied as the destination register Barrel Shifter Shifter The shifter provides bitwise shifting functions for 16 32 or 40 bit inputs yie...

Страница 109: ...hmetic shift logical shift and rotate instructions can obtain the shift argument from a register or directly from an immediate value in the instruction For details about shifter related instructions s...

Страница 110: ...hift value and when the magnitude of the shift is greater than or equal to 32 then the result is either 0 or 1 The following example shows the input value upshifted R0 contains 0000 B6A3 R2 contains 0...

Страница 111: ...R0 L 0x04 results in R1 H contains 6A30 Register Shifts Register based shifts use a register to hold the shift value When a register is used to hold the shift value for ASHIFT LSHIFT or ROT then the...

Страница 112: ...he method to test set clear and toggle specific bits of a data register All instructions have two arguments the source register and the bit field value The test instruction does not change the source...

Страница 113: ...ags see Chapter 14 Shift Rotate Operations In Table 2 11 note the meaning of these symbols Dreg denotes any Data Register File register Dreg_lo denotes the lower 16 bits of any Data Register File regi...

Страница 114: ...V0 AV0S AV1 AV1S CC V V_COPY VS BITCLR Dreg uimm5 BITSET Dreg uimm5 BITTGL Dreg uimm5 CC BITTST Dreg uimm5 CC BITTST Dreg uimm5 Dreg DEPOSIT Dreg Dreg Dreg EXTRACT Dreg Dreg BITMUX Dreg Dreg A0 Dreg_l...

Страница 115: ..._hi uimm4 Dreg_lo_hi Dreg_lo_hi uimm4 Dreg Dreg Dreg Dreg Dreg Dreg Dreg ASHIFT Dreg BY Dreg_lo Dreg LSHIFT Dreg BY Dreg_lo Dreg ROT Dreg BY imm6 Dreg ASHIFT Dreg BY Dreg_lo V Dreg LSHIFT Dreg BY Dreg...

Страница 116: ...amming Reference Dreg_lo_hi LSHIFT Dreg_lo_hi BY Dreg_lo An An ASHIFT BY Dreg _lo 0 1 An An ROT BY imm6 Dreg Dreg Dreg 1 Dreg Dreg Dreg 2 Table 2 11 Shifter Instruction Summary Cont d Instruction ASTA...

Страница 117: ...domain of application programs Supervisor mode and Emulation mode are usually reserved for the kernel code of an operating system The processor mode is determined by the Event Controller When servic i...

Страница 118: ...IPEND 0 IPEND 1 IPEND 2 and IPEND 3 0 Exception Supervisor 0x08 The core is processing an exception event if IPEND 0 0 IPEND 1 0 IPEND 2 0 IPEND 3 1 and IPEND 15 4 are 0 s or 1 s NMI Supervisor 0x04...

Страница 119: ...t to access restricted system registers causes an exception event Table 3 2 lists the registers that may be accessed in User mode Figure 3 1 Processor Modes and States Interrupt RTI Event EMULATION SU...

Страница 120: ...appears in Table 3 3 Any attempt to issue any of the protected instructions from User mode causes an exception event Table 3 2 Registers Accessible in User Mode Processor Registers Register Names Dat...

Страница 121: ...ss must be loaded into the RETI register Second an RTI must be issued The following example code shows how to enter User mode upon reset Example Code to Enter User Mode Upon Reset Listing 3 1 provides...

Страница 122: ...errupt service routine becomes non interruptible because the return address is not saved on the stack The processor remains in User mode until one of these events occurs An interrupt NMI or exception...

Страница 123: ...ulation event or Return instruction occurs to change the mode Before the Return instruction is issued the RETI register must be loaded with a valid return address Non OS Environments For non OS enviro...

Страница 124: ...can be processed Example Code for Supervisor Mode Coming Out of Reset To remain in Supervisor mode when coming out of the Reset state use code as shown in Listing 3 2 Listing 3 2 Staying in Superviso...

Страница 125: ...Emulation mode until the emulation service routine executes an RTE instruction If no interrupts are pending when the RTE instruction executes the processor switches to User mode Otherwise the process...

Страница 126: ...n with the WAKEUP signal When the WAKEUP signal is asserted the processor wakes up and the STI instruction enables interrupts again Example Code for Transition to Idle State To transition to the Idle...

Страница 127: ...tion of Reset State Core Operating Mode Supervisor mode in reset event clocks stopped Rounding Mode Unbiased rounding Cycle Counters Disabled zero DAG Registers I L B M Random values must be cleared a...

Страница 128: ...tion see SYSCR Register on page 3 14 System Software Reset Writing b 111 to bits 2 0 in the system MMR SWRST at address 0xFFC0 0100 causes a System Soft ware reset Resets only the peripherals excludin...

Страница 129: ...strapped by tying them directly to either VDD or VSS The pins and the corresponding bits in SYSCR configure the Boot mode that is employed after hardware reset or Core Double Fault Reset If the core e...

Страница 130: ...e destinations from SYSCR Refer to the Reset and Booting chapter of your Blackfin Processor Hardware Reference for details Software Resets and Watchdog Timer A software reset may be initiated in three...

Страница 131: ...t can be initiated by setting the System Software Reset field in the Software Reset register SWRST Bit 15 indicates whether a software reset has occurred since the last time SWRST was read Bit 14 and...

Страница 132: ...eriod Core and System Reset To perform a system and core reset use the code sequence shown in Listing 3 4 Figure 3 2 Software Reset Register 0 Software Reset Register SWRST 15 14 13 12 11 10 9 8 7 6 5...

Страница 133: ...eference 3 17 Operating Modes and States Listing 3 4 Core and System Reset Issue soft reset P0 L LO SWRST P0 H HI SWRST R0 L 0x0007 W P0 R0 SSYNC Clear soft reset P0 L LO SWRST P0 H HI SWRST R0 L 0x00...

Страница 134: ...System Reset and Powerup 3 18 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 135: ...ntrols program flow constantly providing the address of the next instruction to be executed by other parts of the processor Program flow in the chip is mostly linear with the pro cessor executing prog...

Страница 136: ...dress of the next instruction to execute Figure 4 1 Program Flow Variations ADDRESS N INSTRUCTION INSTRUCTION INSTRUCTION INSTRUCTION INSTRUCTION INSTRUCTION INSTRUCTION INSTRUCTION INSTRUCTION INSTRU...

Страница 137: ...ent controller handles interrupt and event pro cessing determines whether an interrupt is masked and generates the appropriate event vector address In addition to providing data addresses the data add...

Страница 138: ...IPEND EVT8 EVT7 EVT6 EVT5 EVT4 EVT3 EVT2 EVT1 EVT0 PERIPHERALS DYNAMIC POWER MANAGEMENT ADDRESS ARITHMETIC UNIT L1 INSTRUCTION MEMORY PROGRAM COUNTER LOOP COMPARATORS FETCH COUNTER INSTRUCTION DECODE...

Страница 139: ...sters all sequencer related registers are directly readable and writable by move instructions for example SYSCFG R0 P0 RETI Manually pushing or popping registers to or from the stack is done using the...

Страница 140: ...32 bits wide For debug and test registers see Chapter 21 Debug Table 4 1 Non memory mapped Sequencer Registers Register Name Description SEQSTAT Sequencer Status register See Hardware Errors and Exce...

Страница 141: ...Description Instruction Fetch 1 IF1 Issue instruction address to IAB bus start compare tag of instruction cache Instruction Fetch 2 IF2 Wait for instruction data Instruction Fetch 3 IF3 Read from IDB...

Страница 142: ...next instruction address based on the status of the align ment buffers The sequencer responds by generating the next fetch address in the next cycle provided there is no change of flow The sequencer...

Страница 143: ...the EX1 and EX2 stages L The sequencer ensures that the pipeline is fully interlocked and that all the data hazards are hidden from the programmer Multi cycle instructions behave as multiple single c...

Страница 144: ...nstruction s matching return instruction allowing easy return from the subroutine A return instruction causes the sequencer to fetch the instruction at the return address which is stored in the RETS r...

Страница 145: ...ge of 4096 to 4094 bytes The PC relative offset for the long jump is a 25 bit immediate value that must also be a multiple of two bit 0 must be a 0 The 25 bit value gives an effective dynamic range of...

Страница 146: ...25 bit value gives an effective dynamic range of 16 777 216 to 16 777 214 bytes A direct CALL instruction is always a 4 byte instruction Indirect Branch and Call The indirect JUMP and CALL instructio...

Страница 147: ...e CALL instruction the RETS register is loaded with the address of the instruction which would have executed next had the CALL instruction not executed For example JUMP PC P3 CALL PC P0 Subroutines Su...

Страница 148: ...it also writes the return address into the RETS register The RETS register holds the address where program execution resumes after the RTS instruction executes In the example this is the location tha...

Страница 149: ...iables and Parameter Passing Many subroutines require input arguments from the calling function and need to return their results Often this is accomplished by project wide conventions that certain cor...

Страница 150: ...R7 1 R5 R6 R7 calculate anything R6 R6 R7 FP 4 R5 R5 4 FP 8 R6 R6 2 R7 5 SP multiple pop FP SP restore frame pointer RTS _sub end Since the stack pointer SP is modified inside the subroutine for loca...

Страница 151: ...ined by the equivalent code sequences The following subroutine does the same job as the one above but it also saves the RETS register to enable nested subroutine calls Therefore the value stored to FP...

Страница 152: ...32 bit variables and initializes them to zero when the routine is entered _sub3 LINK 8 SP R7 0 P5 0 R7 0 Z FP 4 R7 FP 8 R7 R7 0 P5 0 SP UNLINK RTS _sub3 end For more information on the LINK and UNLINK...

Страница 153: ...for the value of CC The interpretation is to branch on true or branch on false The comparison operations have the form CC expr where expr involves a pair of registers of the same type for example Dat...

Страница 154: ...ional Register Move Register moves can be performed depending on whether the value of the CC flag is true or false 1 or 0 In some cases using this instruction instead of a branch eliminates the cycles...

Страница 155: ...nt to the Instruction Fetch Address bus at the beginning of the DF1 stage All unconditional branches have a latency of 4 CCLK cycles Consider the example in Table 4 4 Hardware Loops The sequencer supp...

Страница 156: ...with two iterations At the beginning the count is 2 Upon reaching the first loop end the count is decremented to 1 and the program flow jumps back to the top of the loop to execute a second time Upon...

Страница 157: ...oop are computed as PC relative addresses from the LSETUP instruction plus an offset In each case the offset value is added to the location of the LSETUP instruction The LC0 and LC1 registers are unsi...

Страница 158: ..._start Therefore zero start offsets are pre ferred that is the lp_start label is next the LSETUP instruction The processor has no restrictions regarding which instructions can occur in a loop end posi...

Страница 159: ...it 1 on a particular instruction PC LB1 LC1 2 will prevent loop unit 0 from looping back on that same instruction even if the address matches Loop unit 0 is allowed to loop back only after the loop co...

Страница 160: ...d Similarly the final calculations are done after the loop terminates for example define N 1024 global_setup I0 H 0xFF80 I0 L 0x0000 B0 I0 L0 N 2 Z I1 H 0xFF90 I1 L 0x0000 B1 I1 L1 N 2 Z P5 N 1 Z algo...

Страница 161: ...ns a CALL instruction that invokes an unknown subroutine that may have local loops In scenarios like these the loop environment can be saved and restored by pushing and popping the loop registers For...

Страница 162: ...pending on the order that the loop registers are popped For best performance restore the LCx regis ters last Furthermore it is recommended that interrupt service routines and global subroutines that c...

Страница 163: ...each pop will incur a ten cycle replay penalty Popping or writing LC0 always incurs the penalty LT0 SP LB0 SP LC0 SP This will cause a replay that is a ten cycle refetch Restore other registers here R...

Страница 164: ...all system interrupts The SIC provides mapping between the many peripheral interrupt sources and the prioritized general purpose interrupt inputs of the core This mapping is programmable and individua...

Страница 165: ...ke up the core from an idled state based on this interrupt request 3 SIC_IMASK masks off or enables interrupts from peripherals at the system level If Interrupt A is not masked the request proceeds to...

Страница 166: ...less the inter rupt service routine clears the mechanism that generated Interrupt A or if the process of servicing the interrupt clears this bit It should be noted that emulation reset NMI and excepti...

Страница 167: ...your part An interrupt service routine that supports multiple interrupt sources must interrogate the appropriate system memory mapped registers MMRs to determine which peripheral generated the interr...

Страница 168: ...t simply by enabling the appropriate bit in the System Interrupt Wakeup enable register SIC_IWR refer to the System Interrupt Appendix of the Blackfin Processor Hardware Reference for your part If a p...

Страница 169: ...K the core wakes up if it is idled but it does not generate an interrupt For a listing of the default System Interrupt Wakeup Enable register set tings refer to the System Interrupt Appendix of the Bl...

Страница 170: ...ver the rele vant SIC_ISR bit is not cleared unless the service routine clears the mechanism that generated the interrupt Many systems need relatively few interrupt enabled peripherals allowing each p...

Страница 171: ...Reference for your part If more than one interrupt source is mapped to the same interrupt they are logically ORed with no hardware prioritization Software can prioritize the interrupt pro cessing as...

Страница 172: ...IPEND interrupts pending These three registers are accessible in Supervisor mode only IMASK Register The Core Interrupt Mask register IMASK indicates which interrupt levels are allowed to be taken The...

Страница 173: ...de To clear bit N from ILAT first make sure that IMASK N 0 and then write ILAT N 1 This write functionality to ILAT is provided for cases where latched interrupt requests need to be cleared cancelled...

Страница 174: ...nding bit in IPEND is set The least significant bit in IPEND that is currently set indicates the interrupt that is currently being serviced At any given time IPEND holds the current status of all nest...

Страница 175: ...vectors are not determined by a fixed offset from an interrupt vector table base address This approach minimizes latency by not requiring a long jump from the vector table to the actual ISR code Figur...

Страница 176: ...tion EVT0 0xFFE0 2000 Highest priority Vec tor address is provided by JTAG RST Reset EVT1 0xFFE0 2004 NMI NMI EVT2 0xFFE0 2008 EVX Exception EVT3 0xFFE0 200C Reserved Reserved EVT4 0xFFE0 2010 Reserve...

Страница 177: ...nterrupt nesting is not enabled If however nesting is enabled and the respective service routine must be interruptible by an interrupt of higher priority the RETI register must be saved most likely on...

Страница 178: ...etic status R7 0 P5 0 SP pop core registers RETI SP disable nesting RTI return from interrupt isr end See Nesting of Interrupts on page 4 51 for more details on interrupt nesting Emulation Events NMI...

Страница 179: ...hest priority interrupt in IPEND is cleared Emulation Interrupt An emulation event causes the processor to enter Emulation mode where instructions are read from the JTAG interface It is the highest pr...

Страница 180: ...ces a system reset for core and peripherals The reset vector is determined by the processor system It points to the start of the on chip boot ROM or to the start of external asynchronous memory depend...

Страница 181: ...IVG15 General purpose interrupts are used for any event that requires processor attention For instance a DMA controller may use them to signal the end of a data transmission or a serial communication...

Страница 182: ...When multiple instructions need to be atomic or are too time critical to be delayed by an interrupt disable the general purpose interrupts but be sure to re enable them at the conclusion of the code...

Страница 183: ...ruction and all instructions after it are aborted 2 The return address is saved in the appropriate return register The return register is RETI for interrupts RETX for exceptions RETN for NMIs and RETE...

Страница 184: ...hapter 16 External Event Management Often the RAISE instruction is executed in interrupt service routines to degrade the interrupt priority This enables less urgent parts of the service routine to be...

Страница 185: ...interrupt service routine must be saved in the Supervisor stack To return from a non nested interrupt service routine only the RTI instruction must be executed because the return address is already he...

Страница 186: ...I0 A3 A4 A5 A6 A7 A3 A4 A5 A6 A3 A4 A5 A4 A3 A3 In In INTERRUPTS DISABLED DURING THIS INTERVAL CYCLE 1 INTERRUPT IS LATCHED ALL POSSIBLE INTERRUPT SOURCES DETERMINED CYCLE 2 INTERRUPT IS PRIORITIZED...

Страница 187: ...DETERMINED CYCLE 2 INTERRUPT IS PRIORITIZED CYCLE 3 ALL INSTRUCTIONS ABOVE A2 ARE KILLED A2 IS KILLED IF IT IS AN RTI OR CLI INSTRUCTION ISR STARTING ADDRESS LOOKUP OCCURS CYCLE 4 I0 INSTRUCTION AT ST...

Страница 188: ...ded between load of return address and RTI R7 0 P5 0 SP FP SP ASTAT SP RETI SP Execute RTI which jumps to return address re enables inter rupts and switches to User mode if this is the last nested int...

Страница 189: ...ertions from the SIC can occur simultaneously before or during interrupt processing for an inter rupt event that is already detected on this interrupt input For a shared interrupt the IPEND interrupt...

Страница 190: ...past a CPLB entry or SRAM block while executing the exception handler calculate the maximum space that all interrupt service routines and the exception handler occupy while they are active and then a...

Страница 191: ...struction load operation misses the L1 instruction cache and gener ates a high latency line fill operation then when an interrupt occurs it is not held off until the fill has completed Instead the pro...

Страница 192: ...ginal external access is completed before initiating the new load or store If the interrupt service routine finishes execution before the load operation has completed then the processor continues to s...

Страница 193: ...hardware errors invoke the Hardware Error Interrupt interrupt IVHW in the Event Vector Table EVT and ILAT IMASK and IPEND registers The Hardware Error Figure 4 11 Sequencer Status Register Sequencer S...

Страница 194: ...conditions within the core such as Performance Monitor overflow Peripheral errors Bus timeout errors The list of supported hardware conditions with their related HWERRCAUSE codes appears in Table 4 10...

Страница 195: ...n violation occurs Exceptions are also given when illegal instructions or illegal combinations of registers are executed Table 4 10 Hardware Conditions Causing Hardware Error Interrupts Hardware Condi...

Страница 196: ...example of an error type event is a CPLB miss L Usually the RETX register contains the correct address to return to To skip over an excepting instruction take care in case the next address is not sim...

Страница 197: ...x21 E May be used to emulate instructions that are not defined for a particular processor implementation Illegal instruction combination 0x22 E See section for multi issue rules in the ADSP BF53x BF56...

Страница 198: ...set Instruction fetch mis aligned address viola tion 0x2A E Attempted misaligned instruction cache fetch On a misaligned instruction fetch exception the return address provided in RETX is the destinat...

Страница 199: ...tch address Illegal use of supervi sor resource 0x2E E Attempted to use a Supervisor register or instruction from User mode Supervisor resources are registers and instructions that are reserved for Su...

Страница 200: ...excepting instruction is not committed All writebacks from the instruction are prevented The generated exception is not taken 9 Illegal Combination 0x22 10 Illegal Use of Protected Resource 0x2E 11 DA...

Страница 201: ...e address of the most recent instruction to cause an exception This mechanism is not intended for recovery but rather for detection Exceptions and the Pipeline Interrupts and exceptions treat instruct...

Страница 202: ...r use the Force Interrupt Reset instruction RAISE L When deferring the processing of an exception to lower priority interrupt IVGx the system must guarantee that IVGx is entered before returning to th...

Страница 203: ...t for an event is as follows Here processing is deferred to low priority interrupt IVG15 Also parameter passing would typically be done here _EVENT1 RAISE 15 JUMP S _EXIT Entry for event at IVG14 _EVE...

Страница 204: ...ll addr_event1 _EVTABLE addr_event2 _EVTABLE 2 addr_eventN _EVTABLE 2N Example Code for an Exception Routine The following code provides an example framework for an interrupt rou tine jumped to from a...

Страница 205: ...upport to keep data transport between memory and core registers effi cient and seamless Having a separate arithmetic unit for address calculations prevents the data computation block from being burden...

Страница 206: ...ress for the next move Supply address with offset Provides an address from a base with an offset without incrementing the original address pointer Modify address Increments or decrements the stored ad...

Страница 207: ...ve For example the R0 I0 M1 instruction directs the DAG to Output the address in register I0 Load the contents of the memory location pointed to by I0 into R0 Modify the contents of I0 by the value co...

Страница 208: ...ister used programs must initialize the corresponding L registers to zero for linear addressing or to the buffer length for circular buffer addressing Note all data address registers must be initializ...

Страница 209: ...igned to any byte Depending on the type of data used increments and decrements to the address registers can be by 1 2 or 4 to match the 8 16 or 32 bit accesses For example consider the following instr...

Страница 210: ...to the last used location on the runtime stack P registers are 32 bits wide Although P registers are primarily used for address calculations they may also be used for general integer arithmetic with...

Страница 211: ...plicitly uses the Supervisor Stack Pointer as the effective address To manipulate the User Stack Pointer for code running in Supervi sor mode use the register alias USP When in Supervisor mode a regis...

Страница 212: ...an offset value that is added to one of the Index registers or subtracted from it The B and L Length registers define circular buffers The B register con tains the starting address of a buffer and the...

Страница 213: ...d stores For example B P1 R0 stores the 8 bit value from the R0 register in the address pointed to by the P1 register then increments the P1 register Loads With Zero or Sign Extension When a 32 bit re...

Страница 214: ...the Pointer and Index registers after the access The amount of increment depends on the word size An access of 32 bit words results in an update of the Pointer by 4 A 16 bit word access updates the P...

Страница 215: ...tions and can support only a 32 bit word transfer Post modify Addressing Post modify addressing uses the value in the Index or Pointer registers as the effective address and then modifies it by the co...

Страница 216: ...of addresses containing data that the DAG steps through repeatedly wrapping around to repeat stepping through the same range of addresses in a circular pattern The DAGs use four types of data address...

Страница 217: ...t modifying and updating the index on each access with a positive or negative modify value from the M register If the Index pointer falls outside the buffer range the DAG subtracts the length of the b...

Страница 218: ...alue exceeds the buffer length the DAG sub tracts for a positive modify value or adds for a negative modify value the L register value before writing the updated index value to the I register Figure 5...

Страница 219: ...t reversed Addresses To obtain results in sequential order programs need bit reversed carry addressing for some algorithms particularly Fast Fourier Transform FFT calculations To satisfy the requireme...

Страница 220: ...tes I1 with the new value Memory Address Alignment The processor requires proper memory alignment to be maintained for the data size being accessed Unless exceptions are disabled violations of memory...

Страница 221: ...and Transfer Sizes Addressing Mode Types of Transfers Supported Transfer Sizes Auto increment Auto decrement Indirect Indexed To and from Data Registers LOADS 32 bit word 16 bit zero extended half wo...

Страница 222: ...asterisk indicates the processor supports the addressing mode Table 5 2 Addressing Modes 32 bit word 16 bit half word 8 bit byte Sign zero extend Data Register Pointer register Data Register Half P Au...

Страница 223: ...ster Dreg_hi denotes the upper 16 bits of any Data Register File register Preg denotes any Pointer register FP or SP register Ireg denotes any Index register Mreg denotes any Modify register W denotes...

Страница 224: ...struction Summary Instruction Preg Preg Preg Preg Preg Preg Preg Preg uimm6m4 Preg Preg uimm17m4 Preg Preg uimm17m4 Preg FP uimm7m4 Dreg Preg Dreg Preg Dreg Preg Dreg Preg uimm6m4 Dreg Preg uimm17m4 D...

Страница 225: ...X Dreg W Preg X Dreg W Preg uimm5m2 X Dreg W Preg uimm16m2 X Dreg W Preg uimm16m2 X Dreg W Preg Preg X Dreg_hi W Ireg Dreg_hi W Ireg Dreg_hi W Ireg Dreg_hi W Preg Dreg_hi W Preg Preg Dreg_lo W Ireg Dr...

Страница 226: ...X Dreg B Preg uimm15 X Dreg B Preg uimm15 X Preg Preg Preg Preg Preg Preg Preg uimm6m4 Preg Preg uimm17m4 Preg Preg uimm17m4 Preg FP uimm7m4 Preg Preg Dreg Preg Dreg Preg Dreg Preg uimm6m4 Dreg Preg...

Страница 227: ...eg_hi W Preg Preg Dreg_hi W Ireg Dreg_lo W Ireg Dreg_lo W Ireg Dreg_lo W Preg Dreg_lo W Preg Dreg W Preg Dreg W Preg Dreg W Preg uimm5m2 Dreg W Preg uimm16m2 Dreg W Preg uimm16m2 Dreg W Preg Preg Dreg...

Страница 228: ...t of multi issue opera tions Data can be loaded and stored in parallel to arithmetical operations For details see Chapter 20 Issuing Parallel Instructions Preg Preg BREV Ireg Mreg BREV Preg Preg 2 Pre...

Страница 229: ...can be configured to function as cache memory Some Blackfin derivatives also feature on chip Level 2 L2 memories Based on a Von Neumann architecture L2 memories have a unified purpose and can freely...

Страница 230: ...ckfin processors Overview of On Chip Level 1 L1 Memory The L1 memory system performance provides high bandwidth and low latency Because SRAMs provide deterministic access time and very high throughput...

Страница 231: ...core accesses SRAM access at processor clock rate CCLK for critical DSP algo rithms and fast context switching Figure 6 1 Processor Memory Architecture NON DMA PERIPHERALS EBIU DMA CONTROLLER L1 MEMOR...

Страница 232: ...uld be mapped to the scratchpad memory for the fastest context switching during interrupt handling L The scratchpad data SRAM like the other L1 blocks operates at core clock frequency CCLK It can be a...

Страница 233: ...ability Protection Lookaside Buffer CPLB address checking is dis abled see L1 Instruction Cache on page 6 10 When the LRUPRIORST bit is set to 1 the cached states of all CPLB_LRUPRIO bits see ICPLB_DA...

Страница 234: ...ers must specify desired memory pages as cache enabled Instruction CPLBs are disabled by default after reset When disabled only minimal address checking is performed by the L1 memory interface This mi...

Страница 235: ...6 2 L1 Instruction Memory Control Register 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 L1 Instruction Memory Control Regist...

Страница 236: ...ch 16K byte bank is made up of four 4K byte subbanks In the figure dotted lines indicate features that exist only on some Blackfin processors Please refer to the hardware reference manual for your par...

Страница 237: ...B 4 KB 4 KB 4 KB 4 KB 4 KB 4 KB 4 KB 4 KB 4 KB DMA CORE BUS DCB INSTRUCTION DATA BUS IDB REGISTER ACCESS BUS RAB TO PROCESSOR CORE INSTRUCTION BANK A INSTRUCTION BANK B INSTRUCTION BANK C UP TO 32 KB...

Страница 238: ...Bs will be cached When CPLBs are enabled any memory location that is accessed must have an associated page definition available or a CPLB exception is generated CPLBs are described in Memory Pro tecti...

Страница 239: ...rithm used to determine which cache line should be replaced if a cache miss occurs The Valid bit indicates the state of a cache line A cache line is always valid or invalid Invalid cache lines have th...

Страница 240: ...1 WD0 LINE 3 VALID LRU ADDRESS WD3 WD2 WD1 WD0 LINE 2 VALID LRU ADDRESS WD3 WD2 WD1 WD0 LINE 1 VALID LRU ADDRESS WD3 WD2 WD1 WD0 LINE 0 1 2 1 20 4 x 64 WAY 2 VALID LRU ADDRESS WD3 WD2 WD1 WD0 LINE 31...

Страница 241: ...the four ways and the respective cache line is valid a cache hit occurs If the address tag compare operation does not result in a match in any of the four ways or the respective line is not valid a ca...

Страница 242: ...et instruction word When responding to a line read request from the instruction mem ory unit the external memory returns the target instruction word first After it has returned the target instruction...

Страница 243: ...mory unit is configured as cache bits 9 through 5 of the instruction fetch address are used as the index to select the cache set for the tag address compare operation If the tag address compare operat...

Страница 244: ...struction tag and data arrays indi rectly and provide a mechanism for instruction cache test initialization and debug L The coherency of instruction cache must be explicitly managed To accomplish this...

Страница 245: ...ion Cache Locking by Way The instruction cache has four independent lock bits ILOC 3 0 that control each of the four Ways of the instruction cache When the cache is enabled L1 Instruction Memory has f...

Страница 246: ...of the instruction is gen erated from the P registers Because the instruction cache should not contain modified dirty data the cache line is simply invalidated and not flushed In the following example...

Страница 247: ...dating the cache and a CSYNC instruction should be inserted after each of these operations Instruction Test Registers The Instruction Test registers allow arbitrary read write of all L1 cache entries...

Страница 248: ...struction Test Data 1 Register on page 6 22 Figure 6 8 Instruction Test Data 0 Register on page 6 23 Access to these registers is possible only in Supervisor or Emulation mode When writing to ITEST re...

Страница 249: ...27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 Instruction Test Command Register ITEST_COMMAND 00 Access subbank 0 01 Access subbank 1 10 Access subbank 2 11 Access subbank 3 Address bits 13 12 in SRAM SB...

Страница 250: ...8 7 6 5 4 3 2 1 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 X 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 X X X X X X X X X X X X X X X...

Страница 251: ...3 2 Tag 1 0 X 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Data 31 16 Data 15 0 Used to access L...

Страница 252: ...it data loads One pipelined 32 bit data store One DMA I O up to 64 bits One 64 bit cache fill victim access L L1 Data Memory can be used only to store data DMEM_CONTROL Register The Data Memory Contro...

Страница 253: ...AG1 non cacheable fetches use port B PORT_PREF0 DAG0 Port Preference 0 DAG0 non cacheable fetches use port A 1 DAG0 non cacheable fetches use port B Valid only when DMC 1 0 11 Determines whether Addre...

Страница 254: ...o affect unless both Data Bank A and Data Bank B are serving as cache bits DMC 1 0 in this register are set to 11 The ENDCPLB bit is used to enable disable the 16 Cacheability Protection Lookaside Buf...

Страница 255: ...tch the same 16K byte half bank address bits 16 match and the same bank address bits 21 and 20 match When an address collision is detected access is nominally granted first to the DAGs then to the sto...

Страница 256: ...4 KB STORE BUFFER 6 X 32 BIT TO PROCESSOR CORE TO DMA CONTROLLER TO EBIU AND L2 DMA DCB DMA READ READ WRITE WRITE EAB 32 BIT 32 BIT 32 BIT 64 BIT 32 BIT 32 BIT 32 BIT 64 BIT LD1 32 BIT LD0 32 BIT SD 3...

Страница 257: ...o affect which addresses tend to remain resident in cache by avoiding victimization of repetitively used sets Accesses to cache do not collide unless they are to the same 4K byte sub bank the same hal...

Страница 258: ...e of how the cacheable address space maps into two data banks follows When both banks are configured as cache they operate as two indepen dent 16K byte 2 Way set associative caches that can be indepen...

Страница 259: ...16K byte pages of memory map into each of the two 16K byte caches implemented by the two data banks Consequently Any data in the first 16K byte of memory could be stored only in Data Bank B Any data...

Страница 260: ...ory it is effectively served by only half the cache that is by Data Bank B a 2 Way set associative 16K byte cache In this instance the application never derives any benefit from Data Bank A L For most...

Страница 261: ...s against the tag bits If the logical address is present in L1 cache a cache hit occurs and the data is accessed in L1 If the logical address is not present a cache miss occurs and the memory transact...

Страница 262: ...fill request to the system as critical or requested word first and forwards that data to the waiting DAG as it updates the cache line In other words the cache performs critical word forwarding The da...

Страница 263: ...bank In addition a two entry write buffer in the L1 Data Memory accepts all stores with cache inhibited or store through protec tion An SSYNC instruction flushes the write buffer IPRIO Register and Wr...

Страница 264: ...ter 0 0 0 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 Interrupt Priority Register IPRIO Reset 0x0000...

Страница 265: ...ied cache line with external memory If the cached data line is dirty the instruction writes the line out and marks the line clean in the data cache If the specified data cache line is already clean or...

Страница 266: ...gister to set the DMC 1 0 bits to their previous state then configures the data memory back to its previous cache SRAM configuration An SSYNC instruction should be run before invalidating the cache an...

Страница 267: ...egisters is possible only in Supervisor or Emulation mode When writing to DTEST registers always write to the DTEST_DATA registers first then the DTEST_COMMAND register DTEST_COMMAND Register When the...

Страница 268: ...11 0 Access Way0 Instruction bit 11 0 1 Access Way1 Instruction bit 11 1 Data Instruction Access 0 Access Data 1 Access Instruction 0 Read access 1 Write access Array Access 0 Access tag array 1 Acce...

Страница 269: ...s Figure 6 14 Data Test Data 1 Register 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 X X X X X X X X X X X X X X X X X 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 X X X X X X X X X X X X X X X X X X X X X X X X X...

Страница 270: ...16 X X X X X X X X 15 14 13 12 11 1 0 X X X Data Test Data 0 Register DTEST_DATA0 Reset Undefined Valid 0 Cache line invalid 1 Cache line valid X Tag 19 4 Tag 3 2 Tag Dirty 0 Cache line unmodified sin...

Страница 271: ...ry itself They also provide proper bus and DMA infrastructure Wide buses between L1 and L2 memory guarantee high data throughput A dedicated DMA controller called IMDMA supports data exchange between...

Страница 272: ...mple at the end of 15 core cycles 32 bytes of instructions or data have been brought into cache and are available to the sequencer If all the instructions contain 16 bits sixteen instructions are brou...

Страница 273: ...ill takes seven core cycles to complete As shown in Figure 6 17 on page 6 46 on chip L2 memory is configured as non cacheable To illustrate the con cept of L2 latency with cache off simple instruction...

Страница 274: ...les added to the execution of the instruction Because the L1 memories are separated into instruction and data memo ries the CPLB entries are also divided between instruction and data CPLBs Sixteen CPL...

Страница 275: ...B_DATA n defines the properties of the page described by the CPLB descriptor For data operations DCPLB_ADDR m defines the start address of the page described by the CPLB descriptor DCPLB_DATA m define...

Страница 276: ...and I O Memory Page Attributes Each page is defined by a two word descriptor consisting of an address descriptor word xCPLB_ADDR n and a properties descriptor word xCPLB_DATA n The address descriptor...

Страница 277: ...as last loaded This must be managed by software and does not change status automatically Supervisor write access permission Enables or disables writes to this page when in Supervisor mode Data pages o...

Страница 278: ...cover the addressable memory and I O spaces than will fit into the available on chip CPLB MMRs When this happens a memory based data structure called a Page Descriptor Table is used in it can be store...

Страница 279: ...ects one of the descriptors to be replaced and the new descriptor information is loaded Before loading new descrip tor data into any CPLBs the corresponding group of sixteen CPLBs must be disabled usi...

Страница 280: ...not support automatic address translation in hardware If all L1 memory is configured as SRAM then the data and instruction MMU functions are optional depending on the application s need for protection...

Страница 281: ...r the L1 Data Memory is configured partially or entirely as cache the corresponding CPLBs must be enabled When an instruction generates a memory request and the cache is enabled the processor first ch...

Страница 282: ...e some ICPLBs and DCPLBs have com mon descriptors for the same address space Figure 6 18 Examples of Protected Memory Regions INSTRUCTION CPLB SETUP DATA CPLB SETUP ASYNC CACHEABLE TWO 1MB PAGES L1 IN...

Страница 283: ...11 4M byte page size PAGE_SIZE 1 0 Reset 0x0000 0000 CPLB_LOCK CPLB_VALID CPLB_L1_CHBL Clear this bit whenever L1 memory is configured as SRAM 0 Non cacheable in L1 1 Cacheable in L1 0 Invalid disable...

Страница 284: ...PLB_DATA0 0xFFE0 1200 ICPLB_DATA1 0xFFE0 1204 ICPLB_DATA2 0xFFE0 1208 ICPLB_DATA3 0xFFE0 120C ICPLB_DATA4 0xFFE0 1210 ICPLB_DATA5 0xFFE0 1214 ICPLB_DATA6 0xFFE0 1218 ICPLB_DATA7 0xFFE0 121C ICPLB_DATA...

Страница 285: ...through cacheable CPLB_VALID 1 CPLB_WT 1 0 Allocate cache lines on reads only 1 Allocate cache lines on reads and writes Valid only if write back cacheable CPLB_VALID 1 CPLB_WT 0 and CPLB_L1_CHBL 1 0...

Страница 286: ...PLB_DATA0 0xFFE0 0200 DCPLB_DATA1 0xFFE0 0204 DCPLB_DATA2 0xFFE0 0208 DCPLB_DATA3 0xFFE0 020C DCPLB_DATA4 0xFFE0 0210 DCPLB_DATA5 0xFFE0 0214 DCPLB_DATA6 0xFFE0 0218 DCPLB_DATA7 0xFFE0 021C DCPLB_DATA...

Страница 287: ...E0 0104 DCPLB_ADDR2 0xFFE0 0108 DCPLB_ADDR3 0xFFE0 010C DCPLB_ADDR4 0xFFE0 0110 DCPLB_ADDR5 0xFFE0 0114 DCPLB_ADDR6 0xFFE0 0118 DCPLB_ADDR7 0xFFE0 011C DCPLB_ADDR8 0xFFE0 0120 DCPLB_ADDR9 0xFFE0 0124...

Страница 288: ...xFFE0 0138 DCPLB_ADDR15 0xFFE0 013C Figure 6 22 ICPLB Address Registers Table 6 4 DCPLB Address Register Memory mapped Addresses Cont d Register Name Memory mapped Address 0 0 0 0 0 0 0 0 0 0 15 14 13...

Страница 289: ...S and ICPLB_STATUS registers are valid only while in the faulting exception service routine Table 6 5 ICPLB Address Register Memory mapped Addresses Register Name Memory mapped Address ICPLB_ADDR0 0xF...

Страница 290: ...d exception see Figure 6 24 Figure 6 23 DCPLB Status Register 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 X X X X X X X X X X X X X 0 X X 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0...

Страница 291: ...DDR and ICPLB_FAULT_ADDR registers are valid only while in the faulting exception service routine Figure 6 24 ICPLB Status Register 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 X X 0 X X X X X X X...

Страница 292: ...defined FAULT_ADDR 15 0 Data address that has caused a fault in the L1 Data Memory FAULT_ADDR 31 16 Data address that has caused a fault in L1 Data Memory 0xFFE0 000C 31 30 29 28 27 26 25 24 23 22 21...

Страница 293: ...nd the least significant byte in the low address byte B0 in addr The diagram on the right shows 32 bit instructions stored in memory Note the most significant 16 bit half word of the instruction bytes...

Страница 294: ...on per clock cycle and it implies that the synchronization between when writes complete and when subsequent instructions execute is not guaranteed Moreover this syn chronization is considered unimport...

Страница 295: ...the sequence of the pro gram source code All that is guaranteed is Load operations will complete before the returned data is used by a subsequent instruction Load operations using data previously writ...

Страница 296: ...these effects could cause undesirable side effects in the intended operation of the program and peripheral To ensure that these effects do not occur in code that requires precise strong ordering of lo...

Страница 297: ...mories and the rest of the chip In addition to performing the core synchronization functions of CSYNC the SSYNC instruction flushes any write buffers between the L1 memory and the system domain and ge...

Страница 298: ...r the instruction should have executed On chip peripherals are guarded against destruction due to speculative reads There a separate strobe triggers the read side effect when the instruction actually...

Страница 299: ...n tasks It also con tains a brief discussion of MMR registers and a core MMR programming example Alignment Nonaligned memory operations are not directly supported A nonaligned memory reference generat...

Страница 300: ...ted by the core If this happens the TESTSET instruction is exe cuted again upon return from the interrupt The TESTSET instruction can address the entire 4G byte memory space but should not target on c...

Страница 301: ...after store instructions to guarantee strong ordering of MMR accesses All MMRs are accessible only in Supervisor mode Access to MMRs in User mode generates a protection violation exception All core M...

Страница 302: ...stores the contents of the IMASK register thus enabling interrupts The instructions between CLI and STI are not interruptible Terminology The following terminology is used to describe memory cache blo...

Страница 303: ...ex invalid Describes the state of a cache line When a cache line is invalid a cache line match cannot occur least recently used LRU algorithm Replacement algorithm used by cache that first replaces li...

Страница 304: ...written to memory before it can be replaced to free space for a cache line allocation Way An array of line storage elements in an N Way cache see Figure 6 4 on page 6 12 write back A cache write polic...

Страница 305: ...n page 7 8 RTS RTI RTX RTN RTE Return on page 7 10 LSETUP LOOP on page 7 13 Instruction Overview This chapter discusses the instructions that control program flow Users can take advantage of these ins...

Страница 306: ...label user defined absolute address label resolved by the assembler linker to the appropriate PC relative instruction a or b Syntax Terminology Preg P5 0 SP FP pcrelm2 undetermined 25 bit or smaller s...

Страница 307: ...ifies 16 bit instruction length Comment b identifies 32 bit instruction length Functional Description The Jump instruction forces a new value into the Program Counter PC to change program flow In the...

Страница 308: ...rget jump pc p2 P2 relative absolute address of the target and then a presentation of the absolute values for target jump 0x224 offset is positive in 13 bits so target address is PC 0x224 a forward ju...

Страница 309: ...the assembler linker to the appropriate PC relative instruction a IF CC JUMP user_label bp user defined absolute address label resolved by the assembler linker to the appropriate PC relative instruct...

Страница 310: ...ion length Functional Description The Conditional JUMP instruction forces a new value into the Program Counter PC to change the program flow based on the value of the CC bit The range of valid offset...

Страница 311: ...rget address is a backwards branch branch predicted if cc jump 0x0B4 offset is positive so target offset address is a forwards branch branch not predicted if cc jump 0xFFFFFC22 bp negative offset in 1...

Страница 312: ...embler linker to the appropriate PC relative instruction a or b Syntax Terminology Preg P5 0 SP and FP are not allowed as the source register for this instruction pcrel25m2 25 bit signed even PC relat...

Страница 313: ...LL instruction exe cutes the RETS register contains the address of the next instruction The value in the Preg must be an even value to maintain 16 bit alignment Flags Affected None Required Mode User...

Страница 314: ...TE Return from Emulation a Instruction Length In the syntax comment a identifies 16 bit instruction length Functional Description The Return instruction forces a return from a subroutine maskable or N...

Страница 315: ...gnized but not serviced until the current interrupt service routine concludes Restoring RETI back off the stack at the conclusion of the interrupt service routine masks subsequent interrupts until the...

Страница 316: ...Instruction Overview 7 12 ADSP BF53x BF56x Blackfin Processor Programming Reference Example rts rti rtx rtn rte Also See Call SP Push SP Pop Special Applications None...

Страница 317: ...OOP loop_name LC0 Preg autoinitialize LC0 b LOOP loop_name LC0 Preg 1 autoinit LC0 b LOOP_BEGIN loop_name define the 1st instruction of loop b LOOP_END loop_name define the last instruction of the loo...

Страница 318: ...lates the three instructions together LSETUP pcrel5m2 lppcrel11m2 LC1 b LSETUP pcrel5m2 lppcrel11m2 LC1 Preg autoinitial ize LC1 b LSETUP pcrel5m2 lppcrel11m2 LC1 Preg 1 autoini tialize LC1 b Syntax T...

Страница 319: ...egisters each to support two independent nestable loops The registers are Loop_Top LTn Loop_Bottom LBn and Loop_Count LCn Consequently LT0 LB0 and LC0 describe Loop0 and LT1 LB1 and LC1 describe Loop1...

Страница 320: ...the loop pointers to be executed as straight line code In the instruction syntax the designation of the loop counter LC0 or LC1 determines which loop level is initialized Consequently to initialize Lo...

Страница 321: ...the LSETUP instruction Begin_Loop and End_Loop are typi cally address labels The linker replaces the labels with offset values A loop counter register LC0 or LC1 counts the trips through the loop The...

Страница 322: ...defined loop execute normally Also the last instruction in the loop must not modify the registers that define the currently active loop LCn LTn or LBn User modifications to those registers while the h...

Страница 323: ...n DoItSome place before the first instruction in the loop loop_end DoItSome place after the last instruction in the loop loop MyLoop LC1 define loop MyLoop with Loop Counter 1 loop_begin MyLoop place...

Страница 324: ...Instruction Overview 7 20 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 325: ...Zero Extended on page 8 15 Load Half Word Sign Extended on page 8 19 Load High Data Register Half on page 8 23 Load Low Data Register Half on page 8 27 Load Byte Zero Extended on page 8 31 Load Byte S...

Страница 326: ...amming Reference Instruction Overview This chapter discusses the load store instructions Users can take advan tage of these instructions to load and store immediate values pointer registers data regis...

Страница 327: ...to high half data or address register b Zero Extended reg uimm16 Z 16 bit value zero extended into data or address register b A0 0 Clear A0 register b A1 0 Clear A1 register b A1 A0 0 Clear both A1 an...

Страница 328: ...Length In the syntax comment a identifies 16 bit instruction length Comment b identifies 32 bit instruction length Functional Description The Load Immediate instruction loads immediate values or expl...

Страница 329: ...the correct half word portion of the 32 bit literal for inclusion in the instruction word The zero extended versions fill the upper bits of the destination register with zeros The sign extended versi...

Страница 330: ...ction Overview 8 6 ADSP BF53x BF56x Blackfin Processor Programming Reference a0 0 a1 0 a1 a0 0 Also See Load Pointer Register Special Applications Use the Load Immediate instruction to initialize regi...

Страница 331: ...indexed with large offset b Preg FP uimm7m4 indexed FP relative a Syntax Terminology Preg P5 0 SP FP uimm6m4 6 bit unsigned field that must be a multiple of 4 with a range of 0 through 60 bytes uimm7...

Страница 332: ...onstant Offset the source pointer with a large 18 bit word aligned mul tiple of 4 signed constant Frame Pointer FP relative and offset with a 7 bit word aligned multiple of 4 negative constant The ind...

Страница 333: ...s instruction can be issued in parallel with spe cific other instructions For more information see Issuing Parallel Instructions on page 20 1 The 32 bit versions of this instruction cannot be issued i...

Страница 334: ...ith small offset a Dreg Preg uimm17m4 indexed with large offset b Dreg Preg uimm17m4 indexed with large offset b Dreg Preg Preg indirect post increment index a 1 Dreg FP uimm7m4 indexed FP relative a...

Страница 335: ...ess and offset must yield an even multiple of 4 to main tain 4 byte word address alignment Failure to maintain proper alignment causes a misaligned memory access exception L The instruction versions t...

Страница 336: ...me Pointer FP relative and offset with a 7 bit word aligned multiple of 4 negative constant The indexed FP relative form is typically used to access local variables in a subroutine or function Positiv...

Страница 337: ...ndirect post increment index version must have separate P registers for the input operands If a common Preg is used for the inputs the auto increment feature does not work Flags Affected None Required...

Страница 338: ...r1 p0 p1 r5 fp 12 r2 i2 r0 i0 r0 i0 Before indirect post increment indexed addressing r7 0 i3 0x4000 Memory location contains 15 for example m0 4 r7 i3 m0 Afterwards r7 15 from memory location 0x4000...

Страница 339: ...small offset a Dreg W Preg uimm16m2 Z indexed with large offset b Dreg W Preg uimm16m2 Z indexed with large offset b Dreg W Preg Preg Z indirect post increment index a 1 Syntax Terminology Dreg R7 0...

Страница 340: ...r half of the register The Pointer register is a P register The indirect address and offset must yield an even numbered address to maintain 2 byte half word address alignment Failure to maintain prope...

Страница 341: ..._2 where Dest is the destination register Dreg in the syntax example Src_1 is the first source register on the right hand side of the equation Src_2 is the second source register Indirect and post inc...

Страница 342: ...her instructions Example r3 w p0 z r7 w p1 z r2 w sp z r6 w p2 12 z r0 w p4 0x8004 z r1 w p0 p1 z Also See Load Half Word Sign Extended Load Low Data Register Half Load High Data Register Half Load Da...

Страница 343: ...small offset a Dreg W Preg uimm16m2 X indexed with large offset b Dreg W Preg uimm16m2 X indexed with large offset b Dreg W Preg Preg X indirect post increment index a 1 Syntax Terminology Dreg R7 0...

Страница 344: ...aded is repli cated in the whole upper half word of the destination D register The indirect address and offset must yield an even numbered address to maintain 2 byte half word address alignment Failur...

Страница 345: ...rc_2 where Dest is the destination register Dreg in the syntax example Src_1 is the first source register on the right hand side of the equation Src_2 is the second source register L Indirect and post...

Страница 346: ...el with other instructions Example r3 w p0 x r7 w p1 x r2 w sp x r6 w p2 12 x r0 w p4 0x800E x r1 w p0 p1 x Also See Load Half Word Zero Extended Load Low Data Register Half Load High Data Register Ha...

Страница 347: ...ect a Dreg_hi W Preg Preg indirect post increment index a 1 Syntax Terminology Dreg_hi R7 0 H Preg P5 0 SP FP Ireg I3 0 Instruction Length In the syntax comment a identifies 16 bit instruction length...

Страница 348: ...he Ireg used in this instruction Example If you use I2 to increment your address pointer first clear L2 to disable circular buffering Failure to explicitly clear Lreg beforehand can result in unexpect...

Страница 349: ...i is the most significant half of the destination register Dreg_hi in the syntax example Src_1 is the memory source pointer register on the right hand side of the syntax Src_2 is the increment pointer...

Страница 350: ...w i3 r1 h w i0 r2 h w p4 r5 h w p2 p0 Also See Load Low Data Register Half Load Half Word Zero Extended Load Half Word Sign Extended Special Applications To read consecutive aligned 16 bit values for...

Страница 351: ...lo W Preg Preg indirect post increment index a 1 Syntax Terminology Dreg_lo R7 0 L Preg P5 0 SP FP Ireg I3 0 Instruction Length In the syntax comment a identifies 16 bit instruction length Functional...

Страница 352: ...Register Lreg corresponding to the Ireg used in this instruction Example If you use I2 to increment your address pointer first clear L2 to disable circular buffering Failure to explicitly clear Lreg...

Страница 353: ...c_2 where Dst_lo is the least significant half of the destination register Dreg_lo in the syntax example Src_1 is the memory source pointer register on the right side of the syntax Src_2 is the increm...

Страница 354: ...ns on page 20 1 Example r3 l w i1 r7 l w i3 r1 l w i0 r2 l w p4 r5 l w p2 p0 Also See Load High Data Register Half Load Half Word Zero Extended Load Half Word Sign Extended Special Applications To rea...

Страница 355: ...R7 0 Preg P5 0 SP FP uimm15 15 bit unsigned field with a range of 0 through 32 767 bytes 0x0000 through 0x7FFF Instruction Length In the syntax comment a identifies 16 bit instruction length Comment...

Страница 356: ...ement the source pointer by 1 byte Offset the source pointer with a 16 bit signed constant Flags Affected None Required Mode User Supervisor Parallel Issue The 16 bit versions of this instruction can...

Страница 357: ...ADSP BF53x BF56x Blackfin Processor Programming Reference 8 33 Load Store Example r3 b p0 z r7 b p1 z r2 b sp z r0 b p4 0xFFFF800F z Also See Load Byte Sign Extended Special Applications None...

Страница 358: ...mm15 15 bit unsigned field with a range of 0 through 32 767 bytes 0x0000 through 0x7FFF Instruction Length In the syntax comment a identifies 16 bit instruction length Comment b identifies 32 bit inst...

Страница 359: ...the source pointer by 1 byte Offset the source pointer with a 16 bit signed constant Flags Affected None Required Mode User Supervisor Parallel Issue The 16 bit versions of this instruction can be is...

Страница 360: ...nstruction Overview 8 36 ADSP BF53x BF56x Blackfin Processor Programming Reference Example r3 b p0 x r7 b p1 x r2 b sp x r0 b p4 0xFFFF800F x Also See Load Byte Zero Extended Special Applications None...

Страница 361: ...g indexed with large offset b FP uimm7m4 Preg indexed FP relative a Syntax Terminology Preg P5 0 SP FP uimm6m4 6 bit unsigned field that must be a multiple of 4 with a range of 0 through 60 bytes uimm...

Страница 362: ...g options Post increment the destination pointer by 4 bytes Post decrement the destination pointer by 4 bytes Offset the source pointer with a small 6 bit word aligned multi ple of 4 unsigned constant...

Страница 363: ...nstruction can be issued in parallel with spe cific other instructions For more information see Issuing Parallel Instructions on page 20 1 The 32 bit versions of this instruction cannot be issued in p...

Страница 364: ...small offset a Preg uimm17m4 Dreg indexed with large offset b Preg uimm17m4 Dreg indexed with large offset b Preg Preg Dreg indirect post increment index a 1 FP uimm7m4 Dreg indexed FP relative a Usi...

Страница 365: ...ional Description The Store Data Register instruction stores the contents of a 32 bit D reg ister to a 32 bit memory location The destination Pointer register can be a P register I register or the Fra...

Страница 366: ...Data Register instruction supports the following options Post increment the destination pointer by 4 bytes Post decrement the destination pointer by 4 bytes Offset the source pointer with a small 6 bi...

Страница 367: ..._1 by a quantity indexed by Dst_2 where Src is the source register Dreg in the syntax example Dst_1 is the memory destination register on the left side of the equation Dst_2 is the increment index reg...

Страница 368: ...d in parallel with spe cific other instructions For more information see Issuing Parallel Instructions on page 20 1 The 32 bit versions of this instruction cannot be issued in parallel with other inst...

Страница 369: ...a W Preg Dreg_hi indirect a W Preg Preg Dreg_hi indirect post increment index a 1 Syntax Terminology Dreg_hi P7 0 H Preg P5 0 SP FP Ireg I3 0 Instruction Length In the syntax comment a identifies 16 b...

Страница 370: ...ength Register Lreg corresponding to the Ireg used in this instruction Example If you use I2 to increment your address pointer first clear L2 to disable circular buffering Failure to explicitly clear...

Страница 371: ...quantity indexed by Dst_2 where Src_hi is the most significant half of the source register Dreg_hi in the syntax example Dst_1 is the memory destination pointer register on the left side of the synta...

Страница 372: ...20 1 Example w i1 r3 h w i3 r7 h w i0 r1 h w p4 r2 h w p2 p0 r5 h Also See Store Low Data Register Half Special Applications To write consecutive aligned 16 bit values for high performance DSP operati...

Страница 373: ...o indirect post decrement data addressing a W Preg Dreg_lo indirect a W Preg Dreg indirect a W Preg Dreg indirect post increment a W Preg Dreg indirect post decrement a W Preg uimm5m2 Dreg indexed wit...

Страница 374: ...number to maintain 2 byte half word address alignment Failure to maintain proper alignment causes an misaligned memory access exception L The instruction versions that explicitly modify Ireg support o...

Страница 375: ...arge 17 bit half word aligned even signed constant Indirect and Post Increment Index Addressing The syntax of the form Dst_1 Dst_2 Src is indirect post increment index addressing The form is shorthand...

Страница 376: ...d for the inputs the auto increment feature does not work Flags Affected None Required Mode User Supervisor Parallel Issue The 16 bit versions of this instruction can be issued in parallel with spe ci...

Страница 377: ...Special Applications To write consecutive aligned 16 bit values for high performance DSP operations use the Store Data Register instructions instead of these Half Word instructions The Half Word Store...

Страница 378: ...t b Syntax Terminology Dreg R7 0 Preg P5 0 SP FP uimm15 15 bit unsigned field with a range of 0 through 32 767 bytes 0x0000 through 0x7FFF Instruction Length In the syntax comment a identifies 16 bit...

Страница 379: ...intain byte alignment Offset the destination pointer with a 16 bit signed constant Flags Affected None Required Mode User Supervisor Parallel Issue The 16 bit versions of this instruction can be issue...

Страница 380: ...lications To write consecutive 8 bit values for high performance DSP operations use the Store Data Register instructions instead of these byte instructions The byte store instructions use only one fou...

Страница 381: ...9 10 Move Half to Full Word Sign Extended on page 9 13 Move Register Half on page 9 15 Move Byte Zero Extended on page 9 23 Move Byte Sign Extended on page 9 25 Instruction Overview This chapter discu...

Страница 382: ...g a sysreg Preg 32 bit P register to sysreg a sysreg USP a A0 A1 move 40 bit Accumulator value b A1 A0 move 40 bit Accumulator value b A0 Dreg 32 bit D register to 40 bit A0 sign extended b A1 Dreg 32...

Страница 383: ...g_even and Dreg_odd operands must be members of the same register pair for example from the set R1 0 R3 2 R5 4 R7 6 opt_mode Optionally FU S2RND or ISS2 See Table 9 1 on page 9 4 Instruction Length In...

Страница 384: ...1 2 31 Signed integer Copy Accumulator 40 0 format to register 32 0 format Saturate results between minimum 231 and maximum 231 1 In either case the resulting hexadecimal range is minimum 0x8000 0000...

Страница 385: ...ger with scaling Shift the Accumulator contents one place to the left multiply x 2 Saturate result to 32 0 format Copy to destination register Results range between minimum 1 and maximum 231 1 In eith...

Страница 386: ...equent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor for most cases Explicit accesses to USP SEQSTAT SYSCFG RETI...

Страница 387: ...with scaling truncation and saturation Also See Load Immediate to initialize registers Move Register Half to move values explicitly into the A0 X and A1 X registers LSETUP LOOP to implicitly access re...

Страница 388: ...g R7 0 P5 0 SP FP Instruction Length In the syntax comment a identifies 16 bit instruction length Functional Description The Move Conditional instruction moves source register contents into a destinat...

Страница 389: ...Conditional instruction cannot be issued in parallel with other instructions Example if cc r3 r0 move if CC 1 if cc r2 p4 if cc p0 r7 if cc p2 p5 if cc r3 r0 move if CC 0 if cc r2 p4 if cc p0 r7 if cc...

Страница 390: ...Functional Description The Move Half to Full Word Zero Extended instruction converts an unsigned half word 16 bits to an unsigned word 32 bits The instruction copies the least significant 16 bits from...

Страница 391: ...V is cleared All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADS...

Страница 392: ...Instruction Overview 9 12 ADSP BF53x BF56x Blackfin Processor Programming Reference Also See Move Half to Full Word Sign Extended Move Register Half Special Applications None...

Страница 393: ...ord Sign Extended instruction converts a signed half word 16 bits to a signed word 32 bits The instruction cop ies the least significant 16 bits from a source register into the lower half of a 32 bit...

Страница 394: ...me flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This in...

Страница 395: ...cant 16 bits of Dreg b A0 L Dreg_lo least significant 16 bits of Dreg into least significant 16 bits of A0 W b A1 L Dreg_lo least significant 16 bits of Dreg into least significant 16 bits of A1 W b A...

Страница 396: ...b Dreg_hi A1 Dreg_lo AO opt_mode move both values at once must go to the upper and lower halves of the same Dreg b Syntax Terminology Dreg_lo R7 0 L Dreg_hi R7 0 H A0 L the least significant 16 bits o...

Страница 397: ...ounding beyond a simple Move Register Half instruction The fraction version of this instruction the default option transfers the Accumulator result to the destination register according to the diagram...

Страница 398: ...the RND_MOD bit in the ASTAT register when they copy the results into the destination register RND_MOD determines whether biased or unbiased rounding is used RND_MOD controls rounding for all version...

Страница 399: ...imum 0 and maximum 1 2 16 or expressed in hex between mini mum 0x0000 and maximum 0xFFFF The Accumulator is unaffected by extraction IS Signed integer format Extract the lower 16 bits of the Accumulat...

Страница 400: ...n and copy it to the destination register half Result is between minimum 1 and maximum 1 2 15 or expressed in hex between mini mum 0x8000 and maximum 0x7FFF The Accumulator is unaffected by extraction...

Страница 401: ...erate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction c...

Страница 402: ...lower halves of the same Dreg r0 h a1 is copy A1 L into R0 H with saturation r5 l a0 t copy A0 H into R5 L truncate A0 L no satu ration r1 l a0 s2rnd copy A0 H into R1 L with scaling round ing satura...

Страница 403: ...al Description The Move Byte Zero Extended instruction converts an unsigned byte to an unsigned word 32 bits The instruction copies the least significant 8 bits from a source register into the least s...

Страница 404: ...ly than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction cannot be issued...

Страница 405: ...ion The Move Byte Sign Extended instruction converts a signed byte to a signed word 32 bits It copies the least significant 8 bits from a source register into the least significant 8 bits of a 32 bit...

Страница 406: ...TAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parall...

Страница 407: ...on page 10 8 SP Pop Multiple on page 10 12 LINK UNLINK on page 10 17 Instruction Overview This chapter discusses the instructions that control the stack Users can take advantage of these instructions...

Страница 408: ...n The Push instruction stores the contents of a specified register in the stack The instruction pre decrements the Stack Pointer to the next avail able location in the stack first Push and Push Multip...

Страница 409: ...popping RETI disables the interrupt system Pushing the Stack Pointer is meaningless since it cannot be retrieved from the stack Using the Stack Pointer as the destination of a pop instruction as in t...

Страница 410: ...BF53x BF56x Blackfin Processor Programming Reference Parallel Issue This instruction cannot be issued in parallel with other instructions Example sp r0 sp r1 sp p0 sp i0 Also See SP Push Multiple SP...

Страница 411: ...struction saves the contents of multiple data and or Pointer registers to the stack The range of registers to be saved always includes the highest index register R7 and or P5 plus any contiguous lower...

Страница 412: ...it is advisable that a runtime system be defined to have its compiler scratch registers as the low est indexed registers For instance data registers R0 P0 would be the return value registers for a si...

Страница 413: ...nstruction If an unaligned memory access occurs an exception is generated and the instruction aborts as described above Only pointer registers P5 0 can be operands for this instruction SP and FP canno...

Страница 414: ...eated here for user convenience a Syntax Terminology mostreg I3 0 M3 0 B3 0 L3 0 A0 X A0 W A1 X A1 W ASTAT RETS RETI RETX RETN RETE LC0 LC1 LT0 LT1 LB0 LB1 USP SEQSTAT and SYSCFG Dreg R7 0 Preg P5 0 F...

Страница 415: ...ration is issued the value pointed to by the Stack Pointer is transferred and the SP is replaced by SP 4 The illustration below shows what the stack would look like when a pop such as R3 SP occurs hig...

Страница 416: ...ion aborts A value cannot be popped off the stack directly into the Stack Pointer SP SP is an invalid instruction Refer to Register Names on page 1 13 for more information Flags Affected The ASTAT SP...

Страница 417: ...l Example r0 sp Load Data Register instruction p4 sp Load Pointer Register instruction i1 sp Pop instruction reti sp Pop instruction supervisor mode required Also See Load Pointer Register Load Data R...

Страница 418: ...nal Description The Pop Multiple instruction restores the contents of multiple data and or Pointer registers from the stack The range of registers to be restored always includes the highest index regi...

Страница 419: ...shing and the increment operation is used for popping values The Stack Pointer always points to the last used location When a pop operation is issued the value pointed to by the Stack Pointer is trans...

Страница 420: ...ntil another push instruc tion overwrites it Of course the usual intent for Pop Multiple is to recover register values that were previously pushed onto the stack The user must exercise pro gramming di...

Страница 421: ...example a load store operation might cause a pro tection violation while Pop Multiple is executing In that case SP is reset to its original value prior to the execution of this instruction This mea s...

Страница 422: ...e Parallel Issue This instruction cannot be issued in parallel with other instructions Example p5 4 sp P3 through P0 excluded r7 2 sp R1 through R0 excluded r7 5 p5 0 sp D registers R4 through R0 opti...

Страница 423: ...uction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Linkage instruction controls the stack frame space on the stack and the Frame Pointer FP for that...

Страница 424: ...them Of course FP must not be modified by user code between LINK and UNLINK to preserve stack integrity Neither LINK nor UNLINK can be interrupted However exceptions that occur while either of these i...

Страница 425: ...it aligned to use this instruction If an unaligned memory access occurs an exception is generated and the instruction aborts as described above AFTER LINK EXECUTES Saved RETS Prior FP FP Allocated wor...

Страница 426: ...ssued in parallel with other instructions Example link 8 establish frame with 8 words allocated for local variables sp r7 0 p5 0 save D and P registers r7 0 p5 0 sp restore D and P registers unlink cl...

Страница 427: ...CC on page 11 15 Instruction Overview This chapter discusses the instructions that affect the Control Code CC bit in the ASTAT register Users can take advantage of these instructions to set the CC bi...

Страница 428: ...Dreg Dreg less than register signed a CC Dreg imm3 less than immediate signed a CC Dreg Dreg less than or equal register signed a CC Dreg imm3 less than or equal immediate signed a CC Dreg Dreg IU le...

Страница 429: ...conditional branching The various forms of the Compare Data Register instruction perform 32 bit signed compare operations on the input operands or an unsigned compare operation if the IU optional mod...

Страница 430: ...arry cleared if no carry All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more informatio...

Страница 431: ...it Management If r0 0x8FFF FFFF and r3 0x0000 0001 then the unsigned operation cc r0 r3 iu produces CC 0 because r0 is treated as a large unsigned value cc r1 0x7 iu cc r2 r0 iu cc r3 2 iu Also See Co...

Страница 432: ...Preg less than register signed a CC Preg imm3 less than immediate signed a CC Preg Preg less than or equal register signed a CC Preg imm3 less than or equal immediate signed a CC Preg Preg IU less tha...

Страница 433: ...ion perform 32 bit signed compare operations on the input operands or an unsigned compare operation if the IU optional mode is appended The compare opera tions perform a subtraction and discard the re...

Страница 434: ...56x Blackfin Processor Programming Reference Example cc p3 p2 cc p0 1 cc p0 p3 cc p2 4 cc p1 p0 cc p4 3 cc p5 p3 iu cc p1 0x7 iu cc p2 p0 iu cc p3 2 iu Also See Compare Data Register Compare Accumulat...

Страница 435: ...e CC bit based on a comparison of two values The input operands are Accumulators These instructions perform 40 bit signed compare operations on the Accumulators The compare operations perform a subtra...

Страница 436: ...result is negative cleared if non negative AC0 is set if result generated a carry cleared if no carry All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags op...

Страница 437: ...BF53x BF56x Blackfin Processor Programming Reference 11 11 Control Code Bit Management Example cc a0 a1 cc a0 a1 cc a0 a1 Also See Compare Pointer Compare Data Register IF CC JUMP Special Applications...

Страница 438: ...s bit equals status bit OR CC a statbit CC status bit equals status bit AND CC a statbit CC status bit equals status bit XOR CC a CC Dreg CC set if the register is non zero a CC statbit CC equals stat...

Страница 439: ...t is if the register is non zero Otherwise the operation clears the CC bit Some versions of this instruction logically set or clear an arithmetic status bit based on the status of the Control Code The...

Страница 440: ...User Supervisor Instruction Length In the syntax comment a identifies 16 bit instruction length Parallel Issue This instruction cannot be issued in parallel with other instructions Example r0 cc az c...

Страница 441: ...inverts the logical state of CC Flags Affected CC is toggled from its previous value by the Negate CC instruction All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and s...

Страница 442: ...Instruction Overview 11 16 ADSP BF53x BF56x Blackfin Processor Programming Reference Example cc cc Also See Move CC Special Applications None...

Страница 443: ...e s Complement on page 12 4 OR on page 12 6 Exclusive OR on page 12 8 BXORSHIFT BXOR on page 12 10 Instruction Overview This chapter discusses the instructions that specify logical operations Users ca...

Страница 444: ...ion The AND instruction performs a 32 bit bit wise logical AND operation on the two source registers and stores the results into the dest_reg The instruction does not implicitly modify the source regi...

Страница 445: ...ocessor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode Us...

Страница 446: ...cription The NOT One s Complement instruction toggles every bit in the 32 bit register The instruction does not implicitly modify the src_reg The dest_reg and src_reg can be the same D register Using...

Страница 447: ...as fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Superv...

Страница 448: ...tion The OR instruction performs a 32 bit bit wise logical OR operation on the two source registers and stores the results into the dest_reg The instruction does not implicitly modify the source regis...

Страница 449: ...fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Superviso...

Страница 450: ...e Exclusive OR XOR instruction performs a 32 bit bit wise logical exclusive OR operation on the two source registers and loads the results into the dest_reg The XOR instruction does not implicitly mod...

Страница 451: ...has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supe...

Страница 452: ...Type I Without Feedback Dreg_lo CC BXORSHIFT A0 Dreg b Dreg_lo CC BXOR A0 Dreg b LFSR Type I With Feedback Dreg_lo CC BXOR A0 A1 CC b A0 BXORSHIFT A0 A1 CC b Syntax Terminology Dreg R7 0 Dreg_lo R7 0...

Страница 453: ...ifted into A0 In the following circuits describing the BXOR instruction group a bit wise XOR reduction is defined as where B0 through BN 1 represent the N bits that result from masking the contents of...

Страница 454: ...a bit wise XOR of A0 logically AND ed with a dreg The result of the operation is placed into both the CC flag and the least significant bit of the destination register The operation is shown in Figur...

Страница 455: ...ccumulator A0 is not modified by this operation This operation is illustrated in Figure 12 3 The upper 15 bits of dreg_lo are overwritten with zero and dr 0 IN after the operation Modified Type I LFSR...

Страница 456: ...cond instruction in this class performs a bit wise XOR of A0 logi cally AND ed with A1 The resulting intermediate bit is XOR ed with the CC flag The result of the operation is placed into both the CC...

Страница 457: ...he feedback version of the BXORSHIFT instruction affects no flags All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Bla...

Страница 458: ...llel Instructions on page 20 1 Example r0 l cc bxorshift a0 r1 r0 l cc bxor a0 r1 r0 l cc bxor a0 a1 cc a0 bxorshift a0 a1 cc Also See None Special Applications Linear feedback shift registers LFSRs c...

Страница 459: ...XTRACT on page 13 16 BITMUX on page 13 21 ONES One s Population Count on page 13 26 Instruction Overview This chapter discusses the instructions that specify bit operations Users can take advantage of...

Страница 460: ...6 bit instruction length Functional Description The Bit Clear instruction clears the bit designated by bit_position in the specified D register It does not affect other bits in that register The bit_p...

Страница 461: ...mily products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction cannot be issued in parallel with other instru...

Страница 462: ...ment a identifies 16 bit instruction length Functional Description The Bit Set instruction sets the bit designated by bit_position in the specified D register It does not affect other bits in the D re...

Страница 463: ...amily products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction cannot be issued in parallel with other instr...

Страница 464: ...struction length Functional Description The Bit Toggle instruction inverts the bit designated by bit_position in the specified D register The instruction does not affect other bits in the D register T...

Страница 465: ...ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction cannot be issued in parallel with other instructions Example bittgl r2 24 toggle bit 24...

Страница 466: ...of 0 through 31 Instruction Length In the syntax comment a identifies 16 bit instruction length Functional Description The Bit Test instruction sets or clears the CC bit based on the bit desig nated...

Страница 467: ...ily products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction cannot be issued in parallel with other instruc...

Страница 468: ...b Syntax Terminology Dreg R7 0 Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Bit Field Deposit instruction merges the background bit field...

Страница 469: ...gth is transparent Sign extended L 0 and p 0 This case loads 0x0000 0000 into dest_reg The sign of a zero length zero position foreground is zero therefore sign extended is all zeros Table 13 1 Input...

Страница 470: ...ign extends that number Sign extended L p 32 Any foreground bits that fall outside the range 31 0 are truncated The Bit Field Deposit instruction does not modify the contents of the two source registe...

Страница 471: ...visor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuing Parallel Instructions on page 20 1 Example Bit Field Deposit Unsigned r7...

Страница 472: ...length then the Bit Field Deposit unsigned instruction produces R7 0b1111 1111 1101 1111 0101 1111 1111 1111 Bit Field Deposit Sign Extended r7 deposit r4 r3 x sign extended If R4 0b1111 1111 1111 11...

Страница 473: ...the background bit field R3 0b0000 1001 1010 1100 0000 1101 0000 1001 where bits 31 16 are the foreground bit field bits 15 8 are the position and bits 7 0 are the length then the Bit Field Deposit un...

Страница 474: ...Dreg Dreg_lo X sign extended b Syntax Terminology Dreg R7 0 Dreg_lo R7 0 L Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Bit Field Extracti...

Страница 475: ...ith zeros The Bit Field Extraction instruction does not modify the contents of the two source registers One of the source registers can also serve as dest_reg Options The user has the choice of using...

Страница 476: ...uired Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuing Parallel Instructions on page 20 1 Example Bit Fiel...

Страница 477: ...then the Bit Field Extraction unsigned instruction produces R7 0b0000 0000 0000 0000 0000 0001 0010 1110 Bit Field Extraction Sign Extended r7 extract r4 r3 l x sign extended If R4 0b1010 0101 1010 01...

Страница 478: ...s is the scene bit field R3 0bxxxx xxxx xxxx xxxx 0000 1101 0000 1001 where bits bits 15 8 are the position and bits 7 0 are the length Then the Bit Field Extraction sign extended instruction produces...

Страница 479: ...dentifies 32 bit instruction length Functional Description The Bit Multiplex instruction merges bit streams The instruction has two versions Shift Right and Shift Left This instruc tion overwrites the...

Страница 480: ...he same D register Table 13 3 Contents Before Shift IF 39 32 31 24 23 16 15 8 7 0 source_1 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx source_0 yyyy yyyy yyyy yyyy yyyy yyyy yyyy yyyy Accumulator A0 zzzz...

Страница 481: ...er Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuing Parallel Instructions on page 20 1 Table 13 5 A Shift Left Instr...

Страница 482: ...es R2 0b0101 0010 1101 0010 1110 0001 1101 0101 R3 0b0110 0001 1101 0101 0101 0010 1101 0010 A0 0b1000 0000 0000 0000 0000 0000 0000 0000 0000 0001 bitmux r3 r2 a0 asl left shift If R3 0b1010 0101 101...

Страница 483: ...ADSP BF53x BF56x Blackfin Processor Programming Reference 13 25 Bit Operations Also See None Special Applications Convolutional encoder algorithms...

Страница 484: ...tion Length In the syntax comment b identifies 32 bit instruction length Functional Description The One s Population Count instruction loads the number of 1 s contained in the src_reg into the lower h...

Страница 485: ...the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see I...

Страница 486: ...Instruction Overview 13 28 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 487: ...Arithmetic Shift on page 14 7 Logical Shift on page 14 14 ROT Rotate on page 14 21 Instruction Overview This chapter discusses the instructions that manipulate bit operations Users can take advantage...

Страница 488: ...c_reg 1 dest_reg dest_reg src_reg 2 Syntax Pointer Operations Preg Preg Preg 1 dest_reg dest_reg src_reg x 2 a Preg Preg Preg 2 dest_reg dest_reg src_reg x 4 a Data Operations Dreg Dreg Dreg 1 dest_re...

Страница 489: ...dified Flags Affected The D register versions of this instruction affect flags as follows AZ is set if result is zero cleared if nonzero AN is set if result is negative cleared if non negative V is se...

Страница 490: ...ackfin Processor Programming Reference Example p3 p3 p2 1 p3 p3 p2 2 p3 p3 p2 2 p3 p3 p2 4 r3 r3 r2 1 r3 r3 r2 2 r3 r3 r2 2 r3 r3 r2 4 Also See Shift with Add Logical Shift Arithmetic Shift Add Multip...

Страница 491: ...dder_pntr src_pntr x 4 a Syntax Terminology Preg P5 0 Instruction Length In the syntax comment a identifies 16 bit instruction length Functional Description The Shift with Add instruction combines a o...

Страница 492: ...gramming Reference Parallel Issue This instruction cannot be issued in parallel with other instructions Example p3 p0 p3 1 p3 p3 2 p0 p3 p0 p3 2 p3 p3 4 p0 Also See Add with Shift Logical Shift Arithm...

Страница 493: ...etic right shift a Dreg uimm5 logical left shift a Dreg_lo_hi Dreg_lo_hi uimm4 arithmetic right shift b Dreg_lo_hi Dreg_lo_hi uimm4 S arithmetic left shift b Dreg Dreg uimm5 arithmetic right shift b D...

Страница 494: ...the syntax Instruction Length In the syntax comment a identifies 16 bit instruction length Comment b identifies 32 bit instruction length Functional Description The Arithmetic Shift instruction shift...

Страница 495: ...ing or logical non saturating instructions L Logical left shift instructions are duplicated in the Syntax section for programmer convenience See the Logical Shift instruction for details on those oper...

Страница 496: ...instruction do not implicitly modify the src_reg values Optionally dest_reg can be the same D register as src_reg Doing this explicitly modifies the source register The Accumulator versions always mo...

Страница 497: ...original number See Saturation on page 1 17 for a description of saturation behavior Flags Affected The versions of this instruction that send results to a Dreg set flags as follows AZ is set if resul...

Страница 498: ...gs and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issu...

Страница 499: ...by r7 l r3 h ashift r0 h by r7 l r3 l ashift r0 l by r7 l r3 l ashift r0 h by r7 l s shift half word saturated r3 h ashift r0 l by r7 l s shift half word saturated r3 h ashift r0 h by r7 l s r3 l ash...

Страница 500: ...rc_reg BY shift_magnitude Syntax Pointer Shift Fixed Magnitude Preg Preg 1 right shift by 1 bit a Preg Preg 2 right shift by 2 bit a Preg Preg 1 left shift by 1 bit a Preg Preg 2 left shift by 2 bit a...

Страница 501: ...Dreg R7 0 Dreg_lo R7 0 L Dreg_lo_hi R7 0 L R7 0 H Preg P5 0 uimm4 4 bit unsigned field with a range of 0 through 15 uimm5 5 bit unsigned field with a range of 0 through 31 Instruction Length In the sy...

Страница 502: ...length providing a separate source and destination register alter native data sizes and parallel issue with Load Store instructions Both syntaxes support constant and registered shift magnitudes For...

Страница 503: ...Shift magnitudes that exceed the size of the destination register produce all zeros in the result For example shifting a 16 bit register value by 20 bit places a valid operation produces 0x0000 A shi...

Страница 504: ...t is zero cleared if nonzero AN is set if result is negative cleared if non negative AV1 is cleared All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags opera...

Страница 505: ...ry r3 h r0 l 12 data left shift half word register r3 h r0 h 14 same as above half word register com binations are arbitrary r3 r6 4 right shift 32 bit word r3 r6 4 left shift 32 bit word a0 a0 7 Accu...

Страница 506: ...ruction Overview 14 20 ADSP BF53x BF56x Blackfin Processor Programming Reference Also See Arithmetic Shift ROT Rotate Shift with Add Vector Arithmetic Shift Vector Logical Shift Special Applications N...

Страница 507: ...egistered Rotate Magnitude Dreg ROT Dreg BY Dreg_lo b A0 ROT A0 BY Dreg_lo b A1 ROT A1 BY Dreg_lo b Syntax Terminology Dreg R7 0 imm6 6 bit signed field with a range of 32 through 31 Instruction Lengt...

Страница 508: ...posite end of the register If 31 0 D register 1010 1111 0000 0000 0000 0000 0001 1010 CC bit N 1 or 0 Rotate left 1 bit 31 0 D register 0101 1110 0000 0000 0000 0000 0011 010N CC bit 1 Rotate left 1 b...

Страница 509: ...it rearranges them in a circular fashion However the last bit rotated out of the register remains in the CC bit and is not returned to the register Because rotates are performed all at once and not o...

Страница 510: ...erently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issu...

Страница 511: ...ADSP BF53x BF56x Blackfin Processor Programming Reference 14 25 Shift Rotate Operations Also See Arithmetic Shift Logical Shift Special Applications None...

Страница 512: ...Instruction Overview 14 26 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 513: ...on page 15 13 Add Immediate on page 15 16 DIVS DIVQ Divide Primitive on page 15 19 EXPADJ on page 15 26 MAX on page 15 30 MIN on page 15 32 Modify Decrement on page 15 34 Modify Increment on page 15...

Страница 514: ...page 15 77 Saturate on page 15 80 SIGNBITS on page 15 83 Subtract on page 15 86 Subtract Immediate on page 15 90 Instruction Overview This chapter discusses the instructions that specify arithmetic o...

Страница 515: ...Arithmetic Operations ABS General Form dest_reg ABS src_reg Syntax A0 ABS A0 b A0 ABS A1 b A1 ABS A0 b A1 ABS A1 b A1 ABS A1 A0 ABS A0 b Dreg ABS Dreg b Syntax Terminology Dreg R7 0 Instruction Lengt...

Страница 516: ...n the destination Saturation is automatically performed with the instruction so taking the absolute value of the larg est magnitude negative number returns the largest magnitude positive number The AB...

Страница 517: ...ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Para...

Страница 518: ...support but shorter instruction length a Dreg Dreg Dreg sat_flag saturation optionally sup ported but at the cost of longer instruction length b Data Registers 16 Bit Operands 16 Bit Result Dreg_lo_hi...

Страница 519: ...n can sometimes save execution time because it can be issued in parallel with certain other instructions See Parallel Issue on page 15 5 The D register version that accepts 16 bit half word operands s...

Страница 520: ...therwise All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF...

Страница 521: ...r0 l 0x7000 and r7 l 0x2000 then r4 l r0 l r7 l ns produces r4 l 0x9000 because no saturation is enforced If r0 l 0x7000 and r7 h 0x2000 then r4 l r0 l r7 h s produces r4 l 0x7FFF satu rated to the m...

Страница 522: ...0 Dreg_lo_hi R7 0 L R7 0 H Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Add Subtract Prescale Down instruction combines two 32 bit val ues...

Страница 523: ...und ing behavior Flags Affected The following flags are affected by this instruction AZ is set if result is zero cleared if nonzero AN is set if result is negative cleared if non negative V is cleared...

Страница 524: ...fin Processor Programming Reference Also See Add Subtract Prescale Up RND Round to Half Word Add Special Applications Typically use the Add Subtract Prescale Down instruction to provide an IEEE 1180 c...

Страница 525: ...R7 0 Dreg_lo_hi R7 0 L R7 0 H Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Add Subtract Prescale Up instruction combines two 32 bit value...

Страница 526: ...behavior Flags Affected The following flags are affected by this instruction AZ is set if result is zero cleared if nonzero AN is set if result is negative cleared if non negative V is set if result s...

Страница 527: ...ference 15 15 Arithmetic Operations Also See RND Round to Half Word Add Subtract Prescale Down Add Special Applications Typically use the Add Subtract Prescale Up instruction to provide an IEEE 1180 c...

Страница 528: ...ntax Terminology Dreg R7 0 Preg P5 0 SP FP Ireg I3 0 imm7 7 bit signed field with the range of 64 through 63 Instruction Length In the syntax comment a identifies 16 bit instruction length Functional...

Страница 529: ...ware clears all the circular address buffer registers during boot up to dis able circular buffering then initializes them later if needed Flags Affected D register versions of this instruction set fla...

Страница 530: ...truction can be issued in parallel with specific other instructions For details see Issuing Parallel Instruc tions on page 20 1 The Data Register and Pointer Register versions of this instruction cann...

Страница 531: ...idend Then set the AQ flag based on the MSBs of the 32 bit dividend and the 16 bit divisor Left shift the dividend one bit Copy the logical inverse of AQ into the dividend LSB a Syntax Terminology Dre...

Страница 532: ...ssuing 16 DIVQ instructions Less quotient resolution is produced by executing fewer DIVQ iterations The result of each successive addition or subtraction appears in dividend_register aligned and ready...

Страница 533: ...s to the right of the binal point of the dividend numerator DL represent the number of bits to the left of the binal point of the divisor and DR represent the number of bits to the right of the binal...

Страница 534: ...its the usable dividend range to 31 bits Viola tions of this range produce an invalid result of the division operation The algorithm overflows if the result cannot be represented in the format of the...

Страница 535: ...ands decreases their resolution and may introduce one LSB of error in the quotient Such error can be detected and corrected by the following steps Save the original unscaled dividend and divisor in sc...

Страница 536: ...y products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction cannot be issued in parallel with other instructi...

Страница 537: ...kfin Processor Programming Reference 15 25 Arithmetic Operations r0 r0 l x Sign extend the 16 bit quotient to 32bits r0 contains the quotient 70 5 14 Also See LSETUP LOOP Multiply 32 Bit Operands Spec...

Страница 538: ...eg_lo_hi R7 0 L R7 0 H Dreg_lo R7 0 L Dreg R7 0 Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Exponent Detection instruction identifies the...

Страница 539: ...id range of exponents is 0 through 31 with 31 representing the smallest 32 bit number magnitude and 15 representing the smallest 16 bit number magnitude Exponent Detection supports three types of samp...

Страница 540: ...s 24 Assume R4 0xF000 0052 and R2 L 27 Then R5 L becomes 3 r5 l expadj r4 l r2 l Assume R4 L 0x0765 and R2 L 12 Then R5 L becomes 4 Assume R4 L 0xC765 and R2 L 12 Then R5 L becomes 1 r5 l expadj r4 h...

Страница 541: ...rations Special Applications EXPADJ detects the exponent of the largest magnitude number in an array The detected value may then be used to normalize the array on a subse quent pass with a shift opera...

Страница 542: ...the maximum or most positive value of the source registers The operation subtracts src_reg_1 from src_reg_0 and selects the output based on the signs of the input values and the arith metic flags The...

Страница 543: ...s flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuing Parallel Instr...

Страница 544: ...regis ters to the dest_reg The minimum value of the source registers is the value closest to The operation subtracts src_reg_1 from src_reg_0 and selects the output based on the signs of the input val...

Страница 545: ...BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuing Par...

Страница 546: ...src_reg dec rement and saturate the result at 32 bits sign extended b 32 Bit Registers Preg Preg dest_reg_new dest_reg_old src_reg a Ireg Mreg dest_reg_new dest_reg_old src_reg a Syntax Terminology P...

Страница 547: ...egisters Index Length and Base are not initialized automatically by Reset Traditionally user software clears all the circular address buffer registers during boot up to dis able circular buffering the...

Страница 548: ...16 bit instructions For details see Issuing Parallel Instructions on page 20 1 All other 16 bit versions of this instruction cannot be issued in parallel with other instructions Example a0 a1 a0 a1 w...

Страница 549: ...32 bits sign extended b 32 Bit Registers Preg Preg BREV dest_reg_new dest_reg_old src_reg bit reversed carry only a Ireg Mreg opt_brev dest_reg_new dest_reg_old src_reg optional bit reverse a Dreg A0...

Страница 550: ...n length Comment b identifies 32 bit instruction length Functional Description The Modify Increment instruction increments a register by a user defined quantity In some versions the instruction copies...

Страница 551: ...y clear Lreg beforehand can result in unexpected Ireg values The circular address buffer registers Index Length and Base are not initialized automatically by Reset Traditionally user software clears a...

Страница 552: ...V is set unaffected otherwise AV0 is set if result saturates and the dest_reg is A0 cleared if no saturation AV0S is set if AV0 is set unaffected otherwise All other flags are unaffected The versions...

Страница 553: ...he Pointer Register Index Register and Modify Register versions of the instruction do not affect the flags Required Mode User Supervisor Parallel Issue The 32 bit versions of this instruction and the...

Страница 554: ...sor Programming Reference Also See Modify Decrement Add Shift with Add Special Applications Typically use the Index Register and Pointer Register versions of the Modify Increment instruction to increm...

Страница 555: ...it result b Multiply And Accumulate Unit 1 MAC1 Dreg_hi Dreg_lo_hi Dreg_lo_hi opt_mode_1 16 bit result into the destination upper half word register b Dreg_odd Dreg_lo_hi Dreg_lo_hi opt_mode_2 32 bit...

Страница 556: ...erations performed by the Multiply and Accumulate Unit 0 MAC0 portion of the architecture load their 16 bit results into the lower half of the destination data register 32 bit results go into an even...

Страница 557: ...description of saturation behavior See Rounding and Truncating on page 1 19 for a description of round ing behavior The versions of this instruction that produce 32 bit results do not perform rounding...

Страница 558: ...n in desti nation register half Result is between minimum 0 and maximum 1 2 16 or expressed in hex between minimum 0x0000 and maximum 0xFFFF Unsigned fraction Multiply 0 16 0 16 to produce 0 32 result...

Страница 559: ...o rounding Saturate the result to 0 16 precision in destination register half Result is between minimum 0 and maximum 1 2 16 or expressed in hex between minimum 0x0000 and maximum 0xFFFF Not applicabl...

Страница 560: ...extract Mul tiply 16 0 16 0 to produce 32 0 results No shift correction Round 32 0 format value at bit 16 RND_MOD bit in the ASTAT register controls the rounding Saturate to 32 0 result Extract the u...

Страница 561: ...me flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This in...

Страница 562: ...Reference Also See Multiply 32 Bit Operands Multiply and Multiply Accumulate to Accu mulator Multiply and Multiply Accumulate to Half Register Multiply and Multiply Accumulate to Data Register Vector...

Страница 563: ...instruction mimics multiplication in the C language and effectively performs Dreg1 Dreg1 Dreg2 modulo 232 Since the integer multiply is modulo 232 the result always fits in a 32 bit dest_reg and overf...

Страница 564: ...teger and X n 1 is the result that can be multiplied again to further the pseudo random sequence Flags Affected None Required Mode User Supervisor Parallel Issue This instruction cannot be issued in p...

Страница 565: ...hi opt_mode multiply and add b A0 Dreg_lo_hi Dreg_lo_hi opt_mode multiply and subtract b Multiply And Accumulate Unit 1 MAC1 Operations A1 Dreg_lo_hi Dreg_lo_hi opt_mode multiply and store b A1 Dreg_l...

Страница 566: ...ds of both MACs as signed fractions with left shift correction as required Options The Multiply and Multiply Accumulate to Accumulator instruction sup ports the following options Saturation is support...

Страница 567: ...inimum 0x00 0000 0000 through maximum 0xFF FFFF FFFF IS Signed integer Multiply 16 0 x 16 0 to produce 32 0 format data Perform no shift correction Sign extend the result to 40 0 format before passing...

Страница 568: ...et unaffected otherwise All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information...

Страница 569: ...rands Multiply and Mul tiply Accumulate to Half Register Multiply and Multiply Accumulate to Data Register Vector Multiply Vector Multiply and Multiply Accumulate Special Applications DSP filter appli...

Страница 570: ...ly And Accumulate Unit 0 MAC0 Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi opt_mode mul tiply and store b Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi opt_mode multi ply and add b Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi opt_mode mu...

Страница 571: ...t 16 bits of the Accumulator into a data half register The fraction versions of this instruction the default and FU options transfer the Accumulator result to the destination register according to the...

Страница 572: ...A0 L A0 H A0 X Destination Register XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX A1 0000 0000 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX A0 L A0 H A0 X Destination Register XXXX XXXX XXXX XXXX XXXX XXXX XXXX...

Страница 573: ...r round Accumulator 9 31 format value at bit 16 RND_MOD bit in the ASTAT register controls the rounding Saturate the result to 1 15 precision and copy it to the destination register half Result is bet...

Страница 574: ...nimum 0x00 0000 0000 and maximum 0xFF FFFF FFFF Extract the lower 16 bits of the Accumulator Saturate for 16 0 precision and copy to the destination register half Result is between minimum 0 and maxim...

Страница 575: ...9 31 format before copying or accumulating to Accumu lator Then saturate Accumulator to maintain 9 31 precision Accumulator result is between minimum 0x80 0000 0000 and maximum 0x7F FFFF FFFF To extr...

Страница 576: ...umulator result is between minimum 0x00 8000 0000 and maximum 0x00 7FFF FFFF To extract to half register round Accumulator 40 0 format value at bit 16 RND_MOD bit in the ASTAT register controls the ro...

Страница 577: ...t unaffected otherwise AV1 is set if result in Accumulator A1 MAC1 operation saturates cleared if A1 result does not saturate AV1S is set if AV1 is set unaffected otherwise All other flags are unaffec...

Страница 578: ...rands are unsigned fractions Add the product into A1 then copy to r3 h Also See Multiply 32 Bit Operands Multiply and Multiply Accumulate to Accu mulator Multiply and Multiply Accumulate to Data Regis...

Страница 579: ...Unit 0 MAC0 Dreg_even A0 Dreg_lo_hi Dreg_lo_hi opt_mode mul tiply and store b Dreg_even A0 Dreg_lo_hi Dreg_lo_hi opt_mode multiply and add b Dreg_even A0 Dreg_lo_hi Dreg_lo_hi opt_mode multiply and s...

Страница 580: ...Accumulator into a data register The 32 bits are saturated at 32 bits The Multiply and Accumulate Unit 0 MAC0 portion of the architecture performs operations that involve Accumulator A0 it loads the...

Страница 581: ...turate the result to 0 32 precision and copy it to the destination regis ter Result is between minimum 0 and maximum 1 2 32 or expressed in hex between minimum 0x0000 0000 and maximum 0xFFFF FFFF IS S...

Страница 582: ...te Accumulator to maintain 40 0 precision Accumulator result is between minimum 0x80 0000 0000 and maximum 0x7F FFFF FFFF To extract shift the Accumulator contents one place to the left multiply x 2 s...

Страница 583: ...t unaffected otherwise AV1 is set if result in Accumulator A1 MAC1 operation saturates cleared if A1 result does not saturate AV1S is set if AV1 is set unaffected otherwise All other flags are unaffec...

Страница 584: ...n into r3 Also See Move Register Move Register Half Multiply 32 Bit Operands Multiply and Multiply Accumulate to Accumulator Multiply and Multiply Accu mulate to Half Register Vector Multiply Vector M...

Страница 585: ...imulta neously in one 32 bit length instruction b Syntax Terminology Dreg R7 0 sat_flag nonoptional saturation flag S or NS Instruction Length In the syntax comment a identifies 16 bit instruction len...

Страница 586: ...he result NS no saturation See Saturation on page 1 17 for a description of saturation behavior Flags Affected This instruction affects the flags as follows AZ is set if result is zero cleared if nonz...

Страница 587: ...equent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue The 32 bit versions of this instruction can b...

Страница 588: ...Instruction Overview 15 76 ADSP BF53x BF56x Blackfin Processor Programming Reference Also See Vector Negate Two s Complement Special Applications None...

Страница 589: ...it normalized frac tion number into a 16 bit normalized fraction number by extracting and saturating bits 31 16 then discarding bits 15 0 The instruction supports only biased rounding which adds a hal...

Страница 590: ...lags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see...

Страница 591: ...ADSP BF53x BF56x Blackfin Processor Programming Reference 15 79 Arithmetic Operations Also See Add Add Subtract Prescale Up Add Subtract Prescale Down Special Applications None...

Страница 592: ...Accumula tors at the 32 bit boundary b Syntax Terminology None Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Saturate instruction saturate...

Страница 593: ...es and the dest_reg is A0 cleared if no overflow AV0S is set if AV0 is set unaffected otherwise AV1 is set if result saturates and the dest_reg is A1 cleared if no overflow AV1S is set if AV1 is set u...

Страница 594: ...truction Overview 15 82 ADSP BF53x BF56x Blackfin Processor Programming Reference Example a0 a0 s a1 a1 s a1 a1 s a0 a0 s Also See Subtract saturate options Add saturate options Special Applications N...

Страница 595: ..._hi R7 0 L R7 0 H Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Sign Bit instruction returns the number of sign bits in a number and can be...

Страница 596: ...of the SIGNBITS instruction can be used directly as the argu ment to ASHIFT to normalize the number Resultant numbers will be in the following formats S signbit M magnitude bit In addition the SIGNBIT...

Страница 597: ...or details see Issuing Parallel Instructions on page 20 1 Example r2 l signbits r7 r1 l signbits r5 l r0 l signbits r4 h r6 l signbits a0 r5 l signbits a1 Also See EXPADJ Special Applications You can...

Страница 598: ...sup ported but at the cost of longer instruction length b 16 Bit Operands 16 Bit Result Dreg_lo_hi Dreg_lo_hi Dreg_lo_hi sat_flag b Syntax Terminology Dreg R7 0 Dreg_lo_hi R7 0 L R7 0 H sat_flag nonop...

Страница 599: ...e half word data register operands and store the result in a half word data register All the instructions for 16 bit data are 32 bit instruction length In the syntax where sat_flag appears substitute...

Страница 600: ...ue The 32 bit versions of this instruction can be issued in parallel with spe cific other 16 bit instructions For details see Issuing Parallel Instructions on page 20 1 The 16 bit versions of this ins...

Страница 601: ...ADSP BF53x BF56x Blackfin Processor Programming Reference 15 89 Arithmetic Operations Also See Modify Decrement Vector Add Subtract Special Applications None...

Страница 602: ...ntax comment a identifies 16 bit instruction length Functional Description The Subtract Immediate instruction subtracts a constant value from an Index register without saturation L The instruction ver...

Страница 603: ...y Reset Traditionally user software clears all the circular address buffer registers during boot up to dis able circular buffering then initializes them later if needed To subtract immediate values fr...

Страница 604: ...Instruction Overview 15 92 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 605: ...on page 16 3 Core Synchronize on page 16 5 System Synchronize on page 16 8 EMUEXCPT Force Emulation on page 16 11 Disable Interrupts on page 16 13 Enable Interrupts on page 16 15 RAISE Force Interrup...

Страница 606: ...e state The Core Synchronize instruction resolves all pending operations and flushes the core store buffer before proceeding to the next instruction The Sys tem Synchronize instruction forces all spec...

Страница 607: ...clock frequencies The IDLE instruction requests an idle state by setting the idle_req bit in SEQSTAT register Setting the idle_req bit precedes placing the Blackfin processor in a quiescent state If y...

Страница 608: ...nstruction executes only in Supervisor mode If execution is attempted in User mode the instruction produces an Illegal Use of Pro tected Resource exception Parallel Issue This instruction cannot be is...

Страница 609: ...ronize CSYNC instruction ensures resolution of all pend ing core operations and the flushing of the core store buffer before proceeding to the next instruction Pending core operations include any spec...

Страница 610: ...processing before CSYNC completes Also See System Synchronize Special Applications Use CSYNC to enforce a strict execution sequence on loads and stores or to conclude all transitional core states bef...

Страница 611: ...lly allows loads to access memory speculatively The core may later cancel or restart speculative loads By using the Core Synchro nize or System Synchronize instructions and managing interrupts appropr...

Страница 612: ...SSYNC flushes any write buffers between the L1 memory and the system interface and generates a Synch request signal to the external system The operation requires an acknowledgement Synch_Ack signal by...

Страница 613: ...ollowing example code sequence if cc jump away_from_here produces speculative branch prediction ssync r0 p0 load In this example SSYNC ensures that the load instruction will not be exe cuted speculati...

Страница 614: ...the following instruction sequence is typical instruction instruction CLI r0 disable interrupts idle enable Idle state ssync conclude all speculative states assert external Sync signal await Synch_Ack...

Страница 615: ...truction forces an emulation exception thus allowing the processor to enter emulation mode When emulation is enabled the processor immediately takes an exception into emulation mode When emulation is...

Страница 616: ...Instruction Overview 16 12 ADSP BF53x BF56x Blackfin Processor Programming Reference Example emuexcpt Also See RAISE Force Interrupt Reset Special Applications None...

Страница 617: ...rrupts instruction globally disables general interrupts by setting IMASK to all zeros In addition the instruction copies the previous contents of IMASK into a user specified register in order to save...

Страница 618: ...r Programming Reference Parallel Issue The Disable Interrupts instruction cannot be issued in parallel with other instructions Example cli r3 Also See Enable Interrupts Special Applications This instr...

Страница 619: ...tion length Functional Description The Enable Interrupts instruction globally enables interrupts by restoring the previous state of the interrupt system back into IMASK Flags Affected None Required Mo...

Страница 620: ...BF56x Blackfin Processor Programming Reference Example sti r3 Also See Disable Interrupts Special Applications This instruction is often located after an IDLE instruction so that it will execute afte...

Страница 621: ...uction forces a specified interrupt or reset to occur Typically it is a software method of invoking a hardware event for debug purposes When the RAISE instruction is issued the processor sets a bit in...

Страница 622: ...ion EMU events use the EXCPT and EMUEXCPT instructions respectively for those events The RAISE instruction does not take effect before the write back stage in the pipeline Flags Affected None 3 reserv...

Страница 623: ...ecution is attempted in User mode the Force Interrupt Reset instruction produces an Illegal Use of Protected Resource exception Parallel Issue The Force Interrupt Reset instruction cannot be issued in...

Страница 624: ...ax comment a identifies 16 bit instruction length Functional Description The Force Exception instruction forces an exception with code uimm4 When the EXCPT instruction is issued the sequencer vectors...

Страница 625: ...in Processor Programming Reference 16 21 External Event Management Parallel Issue The Force Exception instruction cannot be issued in parallel with other instructions Example excpt 4 Also See None Spe...

Страница 626: ...lly zero the instruction sets the CC bit If the byte is originally nonzero the instruction clears the CC bit The sequence of this memory transaction is atomic TESTSET accesses the entire logical memor...

Страница 627: ...ET com pletes the TESTSET sequence cannot be interrupted For example any exceptions associated with the CPLB lookup for both the load and store operations must be completed before the load of the TEST...

Страница 628: ...structions Example testset p1 The TESTSET instruction may be preceded by a CSYNC or SSYNC instruction to ensure that all previous exceptions or interrupts have been processed before the atomic operati...

Страница 629: ...t instruction length Functional Description The No Op instruction increments the PC and does nothing else Typically the No Op instruction allows previous instructions time to complete before continuin...

Страница 630: ...with spe cific other instructions For details see Issuing Parallel Instructions on page 20 1 Example nop mnop mnop a 16 bit instr a 16 bit instr Also See None Special Applications MNOP can be used to...

Страница 631: ...can be used to improve performance by initiating a data cache line fill in advance of when the desired data is actually required for processing The FLUSH instruction is useful when data cache is conf...

Страница 632: ...has been defined as cacheable By invalidating the cache lines associated with the buffer coherency is maintained between the contents stored in cache and the actual values in source memory When the bu...

Страница 633: ...ed with the effective address in the P register The operation causes the line to be fetched if it is not currently in the data cache and if the address is cacheable that is if bit CPLB_L1_CHBL 1 If th...

Страница 634: ...ackfin Processor Programming Reference Flags Affected None Required Mode User Supervisor Parallel Issue This instruction cannot be issued in parallel with other instructions Example prefetch p2 prefet...

Страница 635: ...elects the cache line corresponding to the effective address contained in the P register If the cached data line is dirty the instruction writes the line out and marks the line clean in the data cache...

Страница 636: ...Blackfin Processor Programming Reference Flags Affected None Required Mode User Supervisor Parallel Issue The instruction cannot be issued in parallel with other instructions Example flush p2 flush p...

Страница 637: ...inval idate a specific line in the cache The contents of the P register specify the line to invalidate If the line is in the cache and dirty the cache line is written out to the next level of memory...

Страница 638: ...sor Programming Reference Flags Affected None Required Mode User Supervisor Parallel Issue The Data Cache Line Invalidate instruction cannot be issued in parallel with other instructions Example flush...

Страница 639: ...uses the instruction cache to invalidate a specific line in the cache The contents of the P register spec ify the line to invalidate The instruction cache contains no dirty bit Consequently the conten...

Страница 640: ...Blackfin Processor Programming Reference Flags Affected None Required Mode User Supervisor Parallel Issue This instruction cannot be issued in parallel with other instructions Example iflush p2 iflush...

Страница 641: ...p on page 18 8 Dual 16 Bit Accumulator Extraction with Addition on page 18 13 BYTEOP16P Quad 8 Bit Add on page 18 15 BYTEOP1P Quad 8 Bit Average Byte on page 18 19 BYTEOP2P Quad 8 Bit Average Half Wor...

Страница 642: ...tion Overview This chapter discusses the instructions that manipulate video pixels Users can take advantage of these instructions to align bytes disable exceptions that result from misaligned 32 bit m...

Страница 643: ...ngth In the syntax comment b identifies 32 bit instruction length Functional Description The Byte Align instruction copies a contiguous four byte unaligned word from a combination of two data register...

Страница 644: ...ags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruc...

Страница 645: ...nce 18 5 Video Pixel Operations Example If r3 0xABCD 1234 and r4 0xBEEF DEAD then r0 align8 r3 r4 produces r0 0x34BE EFDE r0 align16 r3 r4 produces r0 0x1234 BEEF and r0 align24 r3 r4 produces r0 0xCD...

Страница 646: ...xceptions that would otherwise be caused by misaligned 32 bit memory loads issued in parallel This instruction only affects misaligned 32 bit load instructions that use I register indirect addressing...

Страница 647: ...reg load Also See Any Quad 8 Bit instructions ALIGN8 ALIGN16 ALIGN24 Special Applications Use the DISALGNEXCPT instruction when priming data registers for Quad 8 Bit single instruction multiple data...

Страница 648: ...es b Dreg BYTEOP3P Dreg_pair Dreg_pair HI sum into high bytes b reverse byte order operands Dreg BYTEOP3P Dreg_pair Dreg_pair LO R sum into low bytes b Dreg BYTEOP3P Dreg_pair Dreg_pair HI R sum into...

Страница 649: ...erformed as a signed operation The 16 bit operand is sign extended to 32 bits before adding The only valid input source register pairs are R1 0 and R3 2 Table 18 2 Assuming the source registers contai...

Страница 650: ...ssuming a source register pair contains the following This instruction prevents exceptions that would otherwise be caused by misaligned 32 bit memory loads issued in parallel Options The R syntax reve...

Страница 651: ...byte ordering Assume a source register pair contains the data shown in Table 18 6 Flags Affected None Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with spec...

Страница 652: ...3p r1 0 r3 2 lo r r3 byteop3p r1 0 r3 2 hi r Also See BYTEOP16P Quad 8 Bit Add Special Applications This instruction is primarily intended for video motion compensation algorithms The instruction supp...

Страница 653: ...tion Length In the syntax comment b identifies 32 bit instruction length Functional Description The Dual 16 Bit Accumulator Extraction with Addition instruction adds together the upper half words bits...

Страница 654: ...6 bit instructions For details see Issuing Parallel Instructions on page 20 1 Example r4 a1 l a1 h r7 a0 l a0 h Also See SAA Quad 8 Bit Subtract Absolute Accumulate Special Applications Use the Dual 1...

Страница 655: ...rder operands Dreg Dreg BYTEOP16P Dreg_pair Dreg_pair R b Syntax Terminology Dreg R7 0 Dreg_pair R1 0 R3 2 only Instruction Length In the syntax comment b identifies 32 bit instruction length Function...

Страница 656: ...llustrated below In the default source order case for example not the R syntax assume that a source register pair contains the data shown in Table 18 9 This instruction prevents exceptions that would...

Страница 657: ...ing Assume a source register pair contains the data shown in Table 18 10 The mnemonic derives its name from the fact that the operands are bytes the result is 16 bits and the arithmetic operation is p...

Страница 658: ...ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuin...

Страница 659: ...Dreg_pair T truncated b reverse byte order operands Dreg BYTEOP1P Dreg_pair Dreg_pair R b Dreg BYTEOP1P Dreg_pair Dreg_pair T R truncated b Syntax Terminology Dreg R7 0 Dreg_pair R1 0 R3 2 only Instru...

Страница 660: ...no bearing on the rounding behavior of this instruction The only valid input source register pairs are R1 0 and R3 2 The Quad 8 Bit Average Byte instruction provides byte alignment directly in the so...

Страница 661: ...e caused by misaligned 32 bit memory loads issued in parallel Options The Quad 8 Bit Average Byte instruction supports the following options Table 18 13 I register Bits and the Byte Alignment The byte...

Страница 662: ...rmance applications cannot afford the overhead of reloading both register pair operands to maintain byte order for every calculation Instead they alternate and load only one register pair operand each...

Страница 663: ...ee Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuing Parallel Instructions o...

Страница 664: ...eg_1 TL R dest_reg BYTEOP2P src_reg_0 src_reg_1 TH R Syntax forward byte order operands Dreg BYTEOP2P Dreg_pair Dreg_pair RNDL round into low bytes b Dreg BYTEOP2P Dreg_pair Dreg_pair RNDH round into...

Страница 665: ...s four bytes together The instruc tion loads the results as bytes on half word boundaries in one 32 bit destination register Some syntax options load the upper byte in the half word and others load th...

Страница 666: ...Quad 8 Bit Average Half Word instruction provides byte align ment directly in the source register pairs src_reg_0 typically R1 0 and src_reg_1 typically R3 2 based only on the I0 register The byte ali...

Страница 667: ...verage Half Word Option Description RND Rounds up the arithmetic mean T Truncates the arithmetic mean L Loads the results into the lower byte of each destination half word H Loads the results into the...

Страница 668: ...thmetic operation is plus for addition The single destination register indicates that averaging is performed Flags Affected None L The ADSP BF535 processor has fewer ASTAT flags and some flags operate...

Страница 669: ...uctions on page 20 1 Example r3 byteop2p r1 0 r3 2 rndl r3 byteop2p r1 0 r3 2 rndh r3 byteop2p r1 0 r3 2 tl r3 byteop2p r1 0 r3 2 th r3 byteop2p r1 0 r3 2 rndl r r3 byteop2p r1 0 r3 2 rndh r r3 byteop...

Страница 670: ...h Functional Description The Quad 8 Bit Pack instruction packs four 8 bit values half word aligned contained in two source registers into one register byte aligned as shown in Table 18 22 and Table 18...

Страница 671: ...more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructio...

Страница 672: ...reg pair Dreg pair R b Syntax Terminology Dreg R7 0 Dreg_pair R1 0 R3 2 only Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Quad 8 Bit Subtr...

Страница 673: ...hip between the I register bits and the byte alignment is illustrated shown in Table 18 26 In the default source order case for example not the R syntax assume a source register pair contains the data...

Страница 674: ...ir The R option causes the low order bytes to come from the high register In the optional reverse source order case for example using the R syn tax the only difference is the source registers swap pla...

Страница 675: ...he ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Iss...

Страница 676: ...ion Length In the syntax comment b identifies 32 bit instruction length Functional Description The Quad 8 Bit Subtract Absolute Accumulate instruction subtracts four pairs of values takes the absolute...

Страница 677: ...g_0 and src_reg_1 based on index registers I0 and I1 The two LSBs of the I0 register determine the byte alignment for source register pair src_reg_0 typically R1 0 The two LSBs of the I1 register dete...

Страница 678: ...the forward and reverse byte order ver sions of this instruction By default the low order bytes come from the low register in the register pair The R option causes the low order bytes to come from th...

Страница 679: ...ued in parallel with specific other 16 bit instructions For details see Issuing Parallel Instructions on page 20 1 Example saa r1 0 r3 2 r0 i0 r2 i1 parallel fill instructions saa r1 0 r3 2 R r1 i0 r3...

Страница 680: ...amming Reference Also See DISALGNEXCPT Load Data Register Special Applications Use the Quad 8 Bit Subtract Absolute Accumulate instruction for block based video motion estimation algorithms using bloc...

Страница 681: ...s 32 bit instruction length Functional Description The Quad 8 Bit Unpack instruction copies four contiguous bytes from a pair of source registers adjusting for byte alignment The instruction loads the...

Страница 682: ...high register In the optional reverse source order case for example using the R syn tax the only difference is the source registers swap places in their byte ordering Assume the source register pair c...

Страница 683: ...BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Require...

Страница 684: ...6 r5 byteunpack r1 0 non reversing sources Assuming register I0 s two LSBs 00b R1 0xFEED FACE R0 0xBEEF BADD then this instruction returns R6 0x00BE 00EF R5 0x00BA 00DD Assuming register I0 s two LSBs...

Страница 685: ...ng register I0 s two LSBs 10b R1 0xFEED FACE R0 0xBEEF BADD then this instruction returns R6 0x00FA 00CE R5 0x00BE 00EF Assuming register I0 s two LSBs 11b R1 0xFEED FACE R0 0xBEEF BADD then this inst...

Страница 686: ...FACE R0 0xBEEF BADD then this instruction returns R6 0x00FE 00ED R5 0x00FA 00CE Assuming register I0 s two LSBs 01b R1 0xFEED FACE R0 0xBEEF BADD then this instruction returns R6 0x00DD 00FE R5 0x00ED...

Страница 687: ...Programming Reference 18 47 Video Pixel Operations Assuming register I0 s two LSBs 11b R1 0xFEED FACE R0 0xBEEF BADD then this instruction returns R6 0x00EF 00BA R5 0x00DD 00FE Also See BYTEPACK Quad...

Страница 688: ...Instruction Overview 18 48 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 689: ...Vector ABS on page 19 15 Vector Add Subtract on page 19 18 Vector Arithmetic Shift on page 19 23 Vector Logical Shift on page 19 28 Vector MAX on page 19 32 Vector MIN on page 19 35 Vector Multiply on...

Страница 690: ...This chapter discusses the instructions that control vector operations Users can take advantage of these instructions to perform simultaneous operations on multiple 16 bit values including add subtrac...

Страница 691: ...hi Dreg_hi SIGN Dreg_lo Dreg_lo b Register Consistency The destination registers dest_hi and dest_lo must be halves of the same data register Similarly src0_hi and src0_lo must be halves of the same r...

Страница 692: ...e same data registers The results of this step obey the signed multiplication rules sum marized in Table 19 1 Y is the number in src0 and Z is the number in src1 The numbers in src0 and src1 may be po...

Страница 693: ...e ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issu...

Страница 694: ...6x Blackfin Processor Programming Reference Example r7 h r7 l sign r2 h r3 h sign r2 l r3 l If R2 H 2 R3 H 23 R2 L 2001 R3 L 1234 then R7 H 1257 or 1234 23 R7 L 1257 If R2 H 2 R3 H 23 R2 L 2001 R3 L 1...

Страница 695: ...ns If R2 H 2 R3 H 23 R2 L 2001 R3 L 1234 then R7 H 1211 or 1234 23 R7 L 1211 If R2 H 2 R3 H 23 R2 L 2001 R3 L 1234 then R7 H 1257 or 1234 23 R7 L 1257 Also See None Special Applications Use the Sum on...

Страница 696: ...reg ASL dest_reg_lo VIT_MAX src_reg ASR Syntax Dual 16 Bit Operation Dreg VIT_MAX Dreg Dreg ASL shift history bits left b Dreg VIT_MAX Dreg Dreg ASR shift history bits right b Single 16 Bit Operation...

Страница 697: ...Whereas the dual versions compare four operands to return two maxima the single ver sions compare only two operands to return one maximum The Accumulator extension bits bits 39 32 must be cleared befo...

Страница 698: ...Table 19 9 Table 19 6 ASL Version Shifts A0 X A0 W A0 00000000 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXBB Table 19 7 Where BB Indicates 00 z0 and y0 are maxima 01 z0 and y1 are maxima 10 z1 and y0 are maxima 11...

Страница 699: ...shown in Table 19 10 the des tination register receives the data shown in Table 19 11 The ASL version shifts A0 left one bit position and appends an LSB to indicate the source of the maximum Converse...

Страница 700: ...L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A...

Страница 701: ...3 r2 asl shift left dual operation Assume R3 0xFFFF 0000 R2 0x0000 FFFF A0 0x00 0000 0000 This example produces R5 0x0000 0000 A0 0x00 0000 0002 r7 vit_max r1 r0 asr shift right dual operation Assume...

Страница 702: ...A0 0x00 0000 0000 r3 l vit_max r1 asr shift right single operation Assume R1 0x1234 FADE A0 0x00 FFFF FFFF This example produces R3 L 0x1234 A0 0x00 7FFF FFFF Also See MAX Special Applications The Co...

Страница 703: ...ndividual absolute values of the upper and lower halves of a single 32 bit data register The results are placed into a 32 bit dest_reg using the following rules If the input value is positive or zero...

Страница 704: ...VS is set if V is set unaffected otherwise All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products F...

Страница 705: ...ADSP BF53x BF56x Blackfin Processor Programming Reference 19 17 Vector Operations Example If r1 0xFFFF 7FFF then r3 abs r1 v produces 0x0001 7FFF Also See ABS Special Applications None...

Страница 706: ...0 src_reg_1 dest_0 A1 A0 dest_1 A1 A0 dest_0 A0 A1 dest_1 A0 A1 Syntax Dual 16 Bit Operations Dreg Dreg Dreg opt_mode_0 add add b Dreg Dreg Dreg opt_mode_0 subtract add b Dreg Dreg Dreg opt_mode_0 add...

Страница 707: ...ub tract Accumulators subtract A1 from A0 b Syntax Terminology Dreg R7 0 opt_mode_0 optional S CO or SCO opt_mode_1 optional S opt_mode_2 optional ASR or ASL Instruction Length In the syntax comment b...

Страница 708: ...ation regis ter SCO Saturate and cross option Combination of S and CO options opt_mode_1 S Saturate the results at 16 or 32 bits depending on the operand size opt_mode_2 ASR Arithmetic shift right Hal...

Страница 709: ...d if no carry unaffected if a quad operation V is set if any results overflow cleared if none overflows VS is set if V is set unaffected otherwise All other flags are unaffected L The ADSP BF535 proce...

Страница 710: ...ace before storing into destination register r5 r3 r4 r7 r3 r4 asl quad 16 bit operations add subtract subtract add with all results multiplied by 2 left shifted 1 place before storing into destinatio...

Страница 711: ...n b Registered Shift Magnitude Dreg ASHIFT Dreg BY Dreg_lo V arithmetic shift b Dreg ASHIFT Dreg BY Dreg_lo V S arithmetic shift with saturation b Arithmetic Left Shift Immediate There is no syntax sp...

Страница 712: ...rs Only arithmetic right shifts are supported Left shifts are performed as logical left shifts that may not preserve the sign of the original number In the default case without the optional saturation...

Страница 713: ...sence the magnitude is the power of 2 multiplied by the src_reg number Positive magnitudes cause multiplication N x 2n whereas neg ative magnitudes produce division N x 2 n or N 2n The dest_reg and sr...

Страница 714: ...overflows cleared if neither overflows VS is set if V is set unaffected otherwise All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently tha...

Страница 715: ...sult is r4 0xF000 0001 r4 r5 3 v s same as above but saturate the result r2 ashift r7 by r5 l v arithmetic shift right or left depending on sign of r5 l R7 H and R7 L by magnitude of R5 L r2 ashift r7...

Страница 716: ...imm4 V logical shift left immediate b Registered Shift Magnitude Dreg LSHIFT Dreg BY Dreg_lo V logical shift b Syntax Terminology Dreg R7 0 Dreg_lo R7 0 L uimm4 unsigned 4 bit field with a range of 0...

Страница 717: ...in shift_magnitude and the result is stored into dest_reg For the LSHIFT versions the sign of the shift magnitude determines the direction of the shift Positive shift magnitudes produce left shifts Ne...

Страница 718: ...both are non negative V is cleared All other flags are unaffected L The ADSP BF535 processor has fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more...

Страница 719: ...ght shift immediate R5 H and R5 L by 3 bits r4 r5 3 v logical left shift immediate R5 H and R5 L by 3 bits r2 lshift r7 by r5 l v logically shift right or left depending on sign of r5 l R7 H and R7 L...

Страница 720: ...positive value nearest to 0x7FFF of the 16 bit half word source registers to the dest_reg The instruction compares the upper half words of src_reg_0 and src_reg_1 and returns that maximum to the upper...

Страница 721: ...fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Superviso...

Страница 722: ...Instruction Overview 19 34 ADSP BF53x BF56x Blackfin Processor Programming Reference Also See Vector SEARCH Vector MIN MAX MIN Special Applications None...

Страница 723: ...lue or the value closest to 0x8000 of the 16 bit half word source registers to the dest_reg This instruction compares the upper half words of src_reg_0 and src_reg_1 and returns that minimum to the up...

Страница 724: ...s fewer ASTAT flags and some flags operate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervi...

Страница 725: ...ADSP BF53x BF56x Blackfin Processor Programming Reference 19 37 Vector Operations Also See Vector SEARCH Vector MAX MAX MIN Special Applications None...

Страница 726: ...perands instruction under the following conditions Both scalar instructions must share the same mode option for example default IS IU T Exception the MAC1 instruction can optionally employ the mixed m...

Страница 727: ...Affected This instruction affects the following flags V is set if any result saturates cleared if none saturates VS is set if V is set unaffected otherwise All other flags are unaffected L The ADSP B...

Страница 728: ...perform signed integer multiplication r3 h r0 h r1 h r3 l r0 l r1 l s2rnd MAC1 and MAC0 multiply signed fractions Both scale the result on the way to the destination register r0 l r7 l r6 l r0 h r7 h...

Страница 729: ...ously and saves the results as a vector couplet See the Arithmetic Operations sections listed above for the scalar instruc tion details Any MAC0 scalar instruction from the list above can be combined...

Страница 730: ...s are R7 6 R5 4 R3 2 and R1 0 Syntax Separate the two compatible scalar instructions with a comma to produce a vector instruction Add a semicolon to the end of the combined instruc tion as usual The o...

Страница 731: ...r3 h a0 r2 h r3 h both multiply signed fractions into separate Accumulators a0 r1 l r0 l a1 r1 h r0 h same as above but sum result into A1 MAC order is arbitrary a1 r3 h r3 l a0 r3 h r3 h sum product...

Страница 732: ...ctions r5 h a1 r3 h r2 h m r5 l a0 r3 l r2 l fu MAC1 multiplies signed fraction by unsigned fraction MAC0 multiplies two unsigned fractions r0 h a1 r3 h r2 h r0 l a0 r3 l r2 l is both MACs perform sig...

Страница 733: ...a0 r3 l r7 l fu MAC1 multi plies signed fraction by unsigned fraction MAC0 multiplies two unsigned fractions r1 a1 r3 h r2 h r0 a0 r3 l r2 l is both MACs per form signed integer multiplication r5 a1...

Страница 734: ...e instruction returns the same magnitude with the opposite arithmetic sign saturated for each 16 bit half word in the source The instruction calculates by subtracting the source from zero See Saturati...

Страница 735: ...ate differently than subsequent Blackfin family products For more information on the ADSP BF535 status flags see Table A 1 on page A 3 Required Mode User Supervisor Parallel Issue This instruction can...

Страница 736: ...H Instruction Length In the syntax comment b identifies 32 bit instruction length Functional Description The Vector Pack instruction packs two 16 bit half word numbers into the halves of a 32 bit dat...

Страница 737: ...3 Required Mode User Supervisor Parallel Issue This instruction can be issued in parallel with specific other 16 bit instructions For details see Issuing Parallel Instructions on page 20 1 Example r3...

Страница 738: ...of 16 bit packed data Two values are tested at a time The Vector Search instruction compares two 16 bit signed half words to values stored in the Accumulators Then it conditionally updates each Accumu...

Страница 739: ...r supported compare modes are specified by the mandatory searchmode flag Summary Assumed Pointer P0 src_reg_hi Compared to least significant 16 bits of A1 If com pare condition is met overwrites lower...

Страница 740: ...ssued in parallel with the combination of one 16 bit length load instruction to the P0 register and one 16 bit NOP No other instructions can be issued in parallel with the Vector Search instruc tion N...

Страница 741: ...e value of P0 corresponding to the value in A1 R0 contains the value of P0 corresponding to the value in A0 Next compare A1 and A0 together and R1 and R0 together to find the single last minimum in th...

Страница 742: ...Instruction Overview 19 54 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 743: ...it up to three instructions to be issued in parallel with some limitations A multi issue instruction is 64 bits in length and consists of one 32 bit instruction and two 16 bit instructions All three i...

Страница 744: ...bit instruction with a 16 bit NOP automatically inserted into the unused 16 bit slot A 32 bit ALU MAC instruction A 16 bit instruction Alternately it is also possible to issue two 16 bit instructions...

Страница 745: ...thmetic Operations ABS Absolute Value Add Only the versions that support optional saturation Add Subtract Prescale Up Add Subtract Prescale Down EXPADJ Exponent Detection MAX Maximum MIN Minimum Modif...

Страница 746: ...opulation Count Logical Operations Exclusive OR Bit Wise XOR Move Move Register 40 bit Accumulator versions only Move Register Half Shift Rotate Operations Arithmetic Shift Saturating and Accumulator...

Страница 747: ...ultiply and Multiply Accumulate to Half Register Multiply and Multiply Accumulate to Data Register Vector ABS Vector Absolute Value Vector Add Subtract Vector Arithmetic Shift Vector Logical Shift Vec...

Страница 748: ...are memory access instructions then both cannot use P registers as address registers In this case at least one memory access instruction must be an I register version Video Pixel Operations ALIGN8 AL...

Страница 749: ...crement Ireg versions only Modify Increment Ireg versions only Subtract Immediate Ireg versions only Load Store Load Pointer Register Load Data Register Load Half Word Zero Extended Load Half Word Sig...

Страница 750: ...een the data in R1 and R3 then the data in R0 and R2 saa r1 0 r3 2 r0 i0 r2 i1 saa r1 0 r3 2 r r1 i0 r3 i1 mnop r1 i0 r3 i1 Table 20 4 Group2 Compatible 16 Bit Instructions Instruction Name Notes Load...

Страница 751: ...mulate to Accumulator while loading a data register and storing a data register using an Ireg pointer A1 R2 L R1 L A0 R2 H R1 H R2 H W I2 I3 R3 Multiply and accumulate while loading two data registers...

Страница 752: ...Examples 20 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 753: ...nstruction bus and the data bus the Watchpoint Unit provides several mechanisms for examining program behavior After counting the number of times a particular address is matched the unit schedules an...

Страница 754: ...ruction Watchpoint Address Control register WPIACTL Two Data Watchpoint Address registers WPDA 1 0 Two Data Watchpoint Address Count registers WPDACNT 1 0 The Data Watchpoint Address Control register...

Страница 755: ...ped together into one data address range watchpoint WPDA 1 0 The instruction and data count value registers must be loaded with the number of times the watchpoint must match minus one After the count...

Страница 756: ...e associated to form a range two additional bits are used as shown in Table 21 3 Table 21 2 WPIACTL Control Bits Bit Name Description EMUSWx Determines whether an instruction address match causes eith...

Страница 757: ...etermine which watchpoint trig gered the exception Next the code writes the start address of the new code in the RETX register and then returns from the exception to the new code Because the exception...

Страница 758: ...2 The WPIACNTn register will decrement to 0x0000 when the programmed count expires Figure 21 1 Instruction Watchpoint Address Registers Table 21 4 Instruction Watchpoint Register Memory mapped Address...

Страница 759: ...ster have no effect unless the WPPWR bit is set Figure 21 2 Instruction Watchpoint Address Count Registers Table 21 5 Instruction Watchpoint Address Count Register Memory mapped Addresses Register Nam...

Страница 760: ...uction address watchpoint WPIA4 WPIAEN5 Valid when WPIREN45 0 0 Disable instruction address watchpoint WPIA5 1 Enable instruction address watchpoint WPIA5 WPAND 0 Any enabled watchpoint triggers an ex...

Страница 761: ...n event 1 Match on WPIA1 causes an emulation event WPIREN23 0 Disable range comparison 1 Enable range comparison Start address WPIA2 End address WPIA3 WPIRINV23 WPIAEN2 Valid when WPIREN23 0 0 Disable...

Страница 762: ...s Corresponding count values in the Data Watchpoint Address Count regis ters WPDACNTn are decremented on each match Table 21 6 Data Address Watchpoints Bit Name Description WPDACCn Determines whether...

Страница 763: ...ess bus matches a value in the WPDAn reg isters Load this WPDACNTn register with a value that is one less than the number of times the watchpoint must match before triggering an event Figure 21 5 Data...

Страница 764: ...formation about the bits in the Data Watchpoint Address Control register WPDACTL see Data Address Watchpoints on page 21 10 Figure 21 6 Data Watchpoint Address Count Value Registers 31 30 29 28 27 26...

Страница 765: ...ses on WPDA0 or on the WPDA0 to WPDA1 range WPDACC0 1 0 WPDREN01 0 Disable range comparison 1 Enable range comparison Start address WPDA0 End address WPDA1 WPDRINV01 0 Inclusive range comparison insid...

Страница 766: ...4 3 2 1 0 X X X X X X 0 0 0 0 0 0 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 X X X X X X X X X X X X X X X X Watchpoint Status Register WPSTAT STATIA0 0 Neither WPIA0 nor the WPIA0 to WPIA1 ran...

Страница 767: ...n a zero overhead loop the iteration count is available in the Loop Count registers LC0 and LC1 The trace buffer can be configured to omit the recording of changes in program flow that match either th...

Страница 768: ...it is rec ommended that TBUF be read in a non interruptible section of code Note if single level compression has occurred the least significant bit LSB of the branch target address is set If two level...

Страница 769: ...ce Buffer Control Register TBUFCTL TBUFPWR 0 Trace buffer is off 1 Trace buffer is active TBUFEN 0 Trace buffer disabled 1 Trace buffer enabled TBUFOVF 0 Overflows are ignored 1 Trace buffer overflow...

Страница 770: ...program flow discontinuities may be read from TBUF and stored in memory by the code shown in Listing 21 1 L While TBUF is being read be sure to disable the trace buffer from recording new discontinuit...

Страница 771: ...art loop1_end lc0 p5 loop1_start r7 p3 read from TBUF loop1_end p4 r7 write to memory and increment p2 p4 pointer to the next available buf location is saved in the header of buf r7 7 p5 3 sp restore...

Страница 772: ...Monitor Control register PFCTL shown in Figure 21 13 Once the unit is enabled individual count enable bits PFCENn take effect Use the PFCENx bits to enable or disable the performance monitors in User...

Страница 773: ...0 causes emulation event PFCEN0 1 0 00 Disable Performance Monitor 0 01 Enable Performance Monitor 0 in User mode only 10 Enable Performance Monitor 0 in Supervisor mode only 11 Enable Performance Mon...

Страница 774: ...NC SSYNC 0x0B EXCPT instructions 0x0C CSYNC SSYNC instructions 0x0D Committed instructions 0x0E Interrupts taken 0x0F Misaligned address violation exceptions 0x10 Stall cycles due to read after write...

Страница 775: ...tran sition 0x94 Data memory store buffer forward stalls due to lack of committed data from processor 0x95 Data memory fill buffer stalls 0x96 Data memory array or TAG collision stalls DAG to DAG or D...

Страница 776: ...n another read from CYCLES In User mode these two registers may be read but not written In Super visor and Emulator modes they are read write registers To enable the cycle counters set the CCEN bit in...

Страница 777: ...L The CYCLES and CYCLES2 registers are not system MMRs but are instead system registers Figure 21 14 Execution Cycle Count Registers X X X X X X X X X X X X X X X X 15 14 13 12 11 10 9 8 7 6 5 4 3 2...

Страница 778: ...ystem Configuration Register SYSCFG SNEN Self Nesting Interrupt Enable SSSTEP Supervisor Sin gle Step When set a Supervisor exception is taken after each instruction is executed It applies only to Use...

Страница 779: ...egister The DSP Device ID register DSPID shown in Figure 21 16 is a read only register and is part of the core Figure 21 16 DSP Device ID Register 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 1 1...

Страница 780: ...Product Identification Register 21 28 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 781: ...ral of the descriptions do not apply to the ADSP BF535 processor These are In Table 3 3 on page 3 4 IDLE is also a protected instruction and is not accessible in User mode In Idle State on page 3 9 an...

Страница 782: ...ag is SET OR CLEARED depending on exe cution of the instruction indicates that the flag is CLEARED by execution of the instruction U indicates that the flag state is UNDEFINED following execution of t...

Страница 783: ...ed Load Byte Sign Extended Store Pointer Register Store Data Register Store High Data Register Half Store Low Data Register Half Store Byte Move Register except acc to dreg indicates that the flag is...

Страница 784: ...ointer Compare Accumulator U Move CC Negate CC AND NOT One s Complement Table A 1 ASTAT Flag Behavior for the ADSP BF535 Cont d Instruction CC AZ AN AC0_ COPY V_ COPY AQ indicates that the flag is NOT...

Страница 785: ...U Logical Shift to dreg U Logical Shift to A0 U U Table A 1 ASTAT Flag Behavior for the ADSP BF535 Cont d Instruction CC AZ AN AC0_ COPY V_ COPY AQ indicates that the flag is NOT AFFECTED by executio...

Страница 786: ...o preg or ireg Modify Increment extracted to dreg Modify Increment to acc U U U U Table A 1 ASTAT Flag Behavior for the ADSP BF535 Cont d Instruction CC AZ AN AC0_ COPY V_ COPY AQ indicates that the f...

Страница 787: ...le Core Synchronize System Synchronize EMUEXCPT Force Emulation Disable Interrupts Enable Interrupts RAISE Force Interrupt Reset Table A 1 ASTAT Flag Behavior for the ADSP BF535 Cont d Instruction CC...

Страница 788: ...8 Bit Subtract Absolute Accumulate U U U U BYTEUNPACK Quad 8 Bit Unpack U U U U Add on Sign U U U U VIT_MAX Compare Select U U Table A 1 ASTAT Flag Behavior for the ADSP BF535 Cont d Instruction CC AZ...

Страница 789: ...ag Behavior for the ADSP BF535 Cont d Instruction CC AZ AN AC0_ COPY V_ COPY AQ indicates that the flag is NOT AFFECTED by execution of the instruction indicates that the flag is SET OR CLEARED depend...

Страница 790: ...ADSP BF535 Flags A 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 791: ...ewing the PDF version of this document click a refer ence in the See Section column to jump to additional information about the MMR L1 Data Memory Controller Registers L1 Data Memory Controller regist...

Страница 792: ...11 DCPLB_ADDRx Registers on page 6 59 0xFFE0 0130 DCPLB_ADDR12 DCPLB_ADDRx Registers on page 6 59 0xFFE0 0134 DCPLB_ADDR13 DCPLB_ADDRx Registers on page 6 59 0xFFE0 0138 DCPLB_ADDR14 DCPLB_ADDRx Regis...

Страница 793: ...LB_DATAx Registers on page 6 57 0xFFE0 0234 DCPLB_DATA13 DCPLB_DATAx Registers on page 6 57 0xFFE0 0238 DCPLB_DATA14 DCPLB_DATAx Registers on page 6 57 0xFFE0 023C DCPLB_DATA15 DCPLB_DATAx Registers o...

Страница 794: ...CPLB_ADDR0 ICPLB_ADDRx Registers on page 6 60 0xFFE0 1104 ICPLB_ADDR1 ICPLB_ADDRx Registers on page 6 60 0xFFE0 1108 ICPLB_ADDR2 ICPLB_ADDRx Registers on page 6 60 0xFFE0 110C ICPLB_ADDR3 ICPLB_ADDRx...

Страница 795: ...TAx Registers on page 6 55 0xFFE0 121C ICPLB_DATA7 ICPLB_DATAx Registers on page 6 55 0xFFE0 1220 ICPLB_DATA8 ICPLB_DATAx Registers on page 6 55 0xFFE0 1224 ICPLB_DATA9 ICPLB_DATAx Registers on page 6...

Страница 796: ...Vector Table on page 4 42 0xFFE0 200C EVT3 EVX Core Event Vector Table on page 4 42 0xFFE0 2010 EVT4 Core Event Vector Table on page 4 42 0xFFE0 2014 EVT5 IVHW Core Event Vector Table on page 4 42 0x...

Страница 797: ...2 0xFFE0 203C EVT15 IVG15 Core Event Vector Table on page 4 42 0xFFE0 2104 IMASK IMASK Register on page 4 38 0xFFE0 2108 IPEND IPEND Register on page 4 40 0xFFE0 210C ILAT ILAT Register on page 4 39 0...

Страница 798: ...FE0 6100 TBUF TBUF Register on page 21 18 Table B 6 Watchpoint and Patch Registers Memory mapped Address Register Name See Section 0xFFE0 7000 WPIACTL WPIACTL Register on page 21 7 0xFFE0 7040 WPIA0 W...

Страница 799: ...0 7140 WPDA0 WPDAn Registers on page 21 10 0xFFE0 7144 WPDA1 WPDAn Registers on page 21 10 0xFFE0 7180 WPDACNT0 WPDACNTn Registers on page 21 11 0xFFE0 7184 WPDACNT1 WPDACNTn Registers on page 21 11 0...

Страница 800: ...Performance Monitor Registers B 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 801: ...sent or recognize bit fields within the opcodes This more explicit format expands the listings to more pages but is easier and quicker to reference The success of this document is measured by how lit...

Страница 802: ...isters can be accessed as 32 bit registers or optionally as two independent 16 bit registers The least significant 16 bits of each register is called the low half and is designated with L following th...

Страница 803: ...at normally contain the base address in bytes of the circular buffer Abbreviated as Breg Table C 2 Processor Sections Processor Description Data Address Generator DAG Calculates the effective address...

Страница 804: ...3 2 The larger number must is written first Note The hardware supports only odd even pairs for example R7 6 R5 4 R3 2 and R1 0 Some instructions require a group of adjacent registers Adjacent reg iste...

Страница 805: ...R3 R2 R1 and R0 are abbreviated R3 0 This nomen clature is similar to that used for valid Data Register pairs but here more than a single pair can be represented Another example is the least significa...

Страница 806: ...ppcrel with the following modifiers the decimal number indicates how many bits the value can include for example lppcrel5 is a 5 bit value any alignment requirements are designated by an optional m su...

Страница 807: ...ulator 0 Sticky Overflow set when AV0 is set but remains set until explicitly cleared by user code AV1 Accumulator 1 Overflow AVS1 Accumulator 1 Sticky Overflow set when AV1 is set but remains set unt...

Страница 808: ...Opcode Range col umn Instructions that support variable arguments such as a choice of source or destination registers optional modes or constants span a range of hex values The minimum and maximum al...

Страница 809: ...Opcode Representation Instruction and Version Bin Opcode Range 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Instruction Name Single Hex Value bit bit bit bit bit bit bit bit bit bit bit bit bit bit bit bit S...

Страница 810: ...the range of operation codes shown for some instructions For example one version of the Zero Overhead Loop Setup instruction spans the opcode range E080 0000 through E08F 03FF as shown in the excerpt...

Страница 811: ...gher address The reason is that the instruction length is encoded in the most significant 16 bits of the opcode By storing this information in the lower addresses the Program Sequencer can determine i...

Страница 812: ...his byte sequence is displayed in ascending address order as 0xED 0xFE 0xCE 0xFA or in 16 bit format as 0xEDFE 0xCEFA Or in 32 bit format as 0xFEED FACE This reference appendix lists the opcodes in th...

Страница 813: ...pcrel13m2 divided by 2 JUMP S pcrel13m2 Jump 0xE200 0000 0xE2FF FFFF 1 1 1 0 0 0 1 0 Most significant bits of pcrel25m2 Least significant bits of pcrel25m2 divided by 2 JUMP L pcrel25m2 Conditional J...

Страница 814: ...080 0000 0xE08F 03FF 1 1 1 0 0 0 0 0 1 0 0 0 pcrel5m2 divided by 2 0 0 0 0 x x pcrel11m2 divided by 2 LOOP loop_name LC0 LOOP_BEGIN loop_name LOOP_END loop_name is mapped to LSETUP pcrel5m2 pcrel11m2...

Страница 815: ...determines pcrel5m2 and the address of LOOP_END determines pcrel11m2 Zero Overhead Loop Setup 0xE0B0 0000 0xE0BF F3FF 1 1 1 0 0 0 0 0 1 0 1 1 pcrel5m2 divided by 2 Preg x x pcrel11m2 divided by 2 LOO...

Страница 816: ...FFF 1 1 1 0 0 0 0 1 0 1 0 Reg grp Reg uimm16 reg_hi uimm16 Load Immediate 0xE180 0000 0xE19F FFFF 1 1 1 0 0 0 0 1 1 0 0 Reg grp Reg uimm16 reg uimm16 Z Load Immediate 0xC408 003F 1 1 0 0 0 1 0 x x x 0...

Страница 817: ...r Register 0xAC00 0xAFFF 1 0 1 0 1 1 uimm6m4 divided by 4 Source Preg Dest Preg Preg Preg uimm6m4 Load Pointer Register 0xE500 0000 0xE53F 7FFF 1 1 1 0 0 1 0 1 0 0 Source Preg Dest Preg uimm17m4 divid...

Страница 818: ...43F FFFF 1 1 1 0 0 1 0 0 0 0 Preg Dreg uimm17m4 divided by 4 Dreg Preg uimm17m4 Load Data Register 0x8000 0x81FF 1 0 0 0 0 0 0 Dest Dreg Index Preg Pointer Preg Dreg Preg Preg NOTE Pointer Preg number...

Страница 819: ...ro Extended 0xA400 0xA7FF 1 0 1 0 0 1 uimm5m2 divided by 2 Preg Dreg Dreg W Preg uimm5m2 Z Load Half Word Zero Extended 0xE440 0000 0xE47F 8FFF 1 1 1 0 0 1 0 0 0 1 Preg Dreg uimm16m2 divided by 2 Dreg...

Страница 820: ...eg Dreg uimm16m2 divided by 2 Dreg W Preg uimm16m2 X Load Half Word Sign Extended 0xE540 8000 0xE57F FFFF 1 1 1 0 0 1 0 1 0 1 Preg Dreg uimm16m2 divided by 2 Dreg W Preg uimm16m2 X Load Half Word Sign...

Страница 821: ...Low Data Register Half 0x9D20 0x9D3F 1 0 0 1 1 1 0 1 0 0 1 Ireg Dreg Dreg_lo W Ireg Load Low Data Register Half 0x9C20 0x9C3F 1 0 0 1 1 1 0 0 0 0 1 Ireg Dreg Dreg_lo W Ireg Load Low Data Register Hal...

Страница 822: ...imm15 Dreg B Preg uimm15 Z Load Byte Zero Extended 0xE480 8000 0xE4BF FFFF 1 1 1 0 0 1 0 0 1 0 Preg Dreg uimm15 Dreg B Preg uimm15 Z Load Byte Sign Extended 0x9940 0x997F 1 0 0 1 1 0 0 1 0 1 Preg Dreg...

Страница 823: ...ster 0x92C0 0x92FF 1 0 0 1 0 0 1 0 1 1 Dest Pointer Preg Source Preg Preg Preg Store Pointer Register 0xBC00 0xBFFF 1 0 1 1 1 1 uimm6m4 divided by 4 Source Pointer Preg Dest Preg Preg uimm6m4 Preg Sto...

Страница 824: ...6m4 Dreg Store Data Register 0xE600 0000 0xE63F 7FFF 1 1 1 0 0 1 1 0 0 0 Preg Dreg uimm17m4 divided by 4 Preg uimm17m4 Dreg Store Data Register 0xE600 8000 0xE63F FFFF 1 1 1 0 0 1 1 0 0 0 Preg Dreg ui...

Страница 825: ...1 0 Ireg Dreg W Ireg Dreg_hi Store High Data Register Half 9EC0 0x9EDF 1 0 0 1 1 1 1 0 1 1 0 Ireg Dreg W Ireg Dreg_hi Store High Data Register Half 0x8C00 0x8DFF 1 0 0 0 1 1 0 Source Dreg Pointer Pre...

Страница 826: ...the same Preg number Otherwise this opcode represents a post modify version of this instruction Store Low Data Register Half 0x9700 0x973F 1 0 0 1 0 1 1 1 0 0 Preg Dreg W Preg Dreg Store Low Data Regi...

Страница 827: ...ber If so this opcode represents a non post modify instruction version Store Byte 0x9B00 0x9B3F 1 0 0 1 1 0 1 1 0 0 Preg Dreg B Preg Dreg Store Byte 0x9A00 0x9A3F 1 0 0 1 1 0 1 0 0 0 Preg Dreg B Preg...

Страница 828: ...eg genreg dagreg dagreg genreg USP USP genreg Dreg sysreg sysreg Dreg sysreg Preg sysreg USP Move Register 0xC408 C000 0xC408 C038 1 1 0 0 0 1 0 x x x 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 A0 A1...

Страница 829: ...0xC12B 3800 0xC12B 39C0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 Dreg_eve n 0 0 0 0 0 0 Dreg_even A0 ISS2 Move Register 0xC00F 1800 0xC00F 19C0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 Dreg_...

Страница 830: ...0 0 0 0 0 0 Dreg_even A0 Dreg_odd A1 Dreg_odd A1 Dreg_even A0 Move Register 0xC08F 3800 0xC08F 39C0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 Dreg_eve n of the register pair 0 0 0 0 0 0 Dreg_even...

Страница 831: ...63F 0 0 0 0 0 1 1 0 0 0 Dest Dreg Source Dreg IF CC Dreg Dreg Move Conditional 0x0640 0x067F 0 0 0 0 0 1 1 0 0 1 Dest Dreg Source Preg IF CC Dreg Preg Move Conditional 0x0680 0x06BF 0 0 0 0 0 1 1 0 1...

Страница 832: ...0 0 0 1 0 x x x 0 0 1 0 1 0 0 0 0 0 Dest Dreg 0 0 0 1 1 1 1 1 1 Dreg_lo A0 X Move Register Half 0xC40A 4000 0xC40A 4E00 1 1 0 0 0 1 0 x x x 0 0 1 0 1 0 0 1 0 0 Dest Dreg 0 0 0 1 1 1 1 1 1 Dreg_lo A1...

Страница 833: ...Dreg 0 0 0 0 0 0 Dreg_lo A0 Move Register Half 0xC083 3800 0xC083 39C0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 Dreg 0 0 0 0 0 0 Dreg_lo A0 FU Move Register Half 0xC103 3800 0xC103 39C0 1 1 0 0 0...

Страница 834: ...0 0 0 0 0 Dreg_lo A0 IH Move Register Half 0xC007 1800 0xC007 19C0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 Dreg 0 0 0 0 0 0 Dreg_hi A1 Move Register Half 0xC107 1800 0xC107 19C0 1 1 0 0 0 0 0 1...

Страница 835: ...00 0xC167 19C0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 Dreg 0 0 0 0 0 0 Dreg_hi A1 IH Move Register Half 0xC007 3800 0xC007 39C0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 Dreg 0 0 0 0 0 0 Dr...

Страница 836: ...0 0 Dreg_lo A0 Dreg_hi A1 S2RND Dreg_hi A1 Dreg_lo A0 S2RND Move Register Half 0xC127 3800 0xC127 39C0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 Dreg 0 0 0 0 0 0 Dreg_lo A0 Dreg_hi A1 ISS2 Dreg_h...

Страница 837: ...register number represents the lowest register in the range to be used Example 100b in that field means R7 through R4 are used SP R7 Dreglim Push Multiple 0x04C0 0x04C5 0 0 0 0 0 1 0 0 1 1 0 0 0 Preg...

Страница 838: ...0 1 0 0 1 0 0 0 0 Preg NOTE The embedded register number represents the lowest register in the range to be used Example 010b in that field means P5 through P2 are used The highest useful value allowed...

Страница 839: ...C Dreg imm3 Compare Data Register 0x0880 0x08BF 0 0 0 0 1 0 0 0 1 0 Source reg Dest reg CC Dreg Dreg Compare Data Register 0x0C80 0x0CBF 0 0 0 0 1 1 0 0 1 0 imm3 Dest reg CC Dreg imm3 Compare Data Reg...

Страница 840: ...er Register 0x0CC0 0x0CFF 0 0 0 0 1 1 0 0 1 1 imm3 Dest reg CC Preg imm3 Compare Pointer Register 0x0940 0x097F 0 0 0 0 1 0 0 1 0 1 Source reg Dest reg CC Preg Preg Compare Pointer Register 0x0D40 0x0...

Страница 841: ...C 0x0200 0x0207 0 0 0 0 0 0 1 0 0 0 0 0 0 Dreg Dreg CC Move CC 0x0380 0x039F 0 0 0 0 0 0 1 1 1 0 0 ASTAT bit statbit CC Move CC 0x03A0 0x03BF 0 0 0 0 0 0 1 1 1 0 1 ASTAT bit statbit CC Move CC 0x03C0...

Страница 842: ...ASTAT bit CC statbit Move CC 0x0340 035F 0 0 0 0 0 0 1 1 0 1 0 ASTAT bit CC statbit Move CC 0x0360 0x037F 0 0 0 0 0 0 1 1 0 1 1 ASTAT bit CC statbit Negate CC 0x0218 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 CC...

Страница 843: ...c 0 Dreg Dreg Dreg Dreg Exclusive OR 0x5800 0x59FF 0 1 0 1 1 0 0 Dest Dreg Src 1 Dreg Src 0 Dreg Dreg Dreg Dreg Bit Wise Exclusive OR 0xC60B 0000 0xC60B 0E38 1 1 0 0 0 1 1 0 0 0 x x 1 0 1 1 0 0 0 0 De...

Страница 844: ...uimm5 Dest Dreg BITTGL Dreg uimm5 Bit Test 0x4900 0x49FF 0 1 0 0 1 0 0 1 uimm5 Dest Dreg CC BITTST Dreg uimm5 Bit Test 0x4800 0x48FF 0 1 0 0 1 0 0 0 uimm5 Dest Dreg CC BITTST Dreg uimm5 Bit Field Dep...

Страница 845: ...0 1 0 0 0 0 0 0 0 0 0 0 x x x Source 0 Dreg Source 1 Dreg BITMUX Dreg Dreg A0 ASR Bit Multiplex 0xC608 4000 0xC608 403F 1 1 0 0 0 1 1 0 0 x x 0 1 0 0 0 0 1 0 0 0 0 0 x x x Source 0 Dreg Source 1 Dreg...

Страница 846: ...0 0 0 0 0 1 0 0 Source Dreg Dest Dreg Dreg Dreg Dreg 1 Add with Shift 0x4140 0x417F 0 1 0 0 0 0 0 1 0 1 Source Dreg Dest Dreg Dreg Dreg Dreg 2 Shift with Add 0x5C00 0x5DFF 0 1 0 1 1 1 0 Dest Preg Src...

Страница 847: ...o uimm4 S Arithmetic Shift 0xC680 5000 0xC680 5E7F 1 1 0 0 0 1 1 0 1 x x 0 0 0 0 0 0 1 0 1 Dest Dreg uimm4 Source Dreg Dreg_lo Dreg_hi uimm4 S Arithmetic Shift 0xC680 6000 0xC680 6E7F 1 1 0 0 0 1 1 0...

Страница 848: ...reg Arithmetic Shift 0xC600 0000 0xC600 0E3F 1 1 0 0 0 1 1 0 0 x x 0 0 0 0 0 0 0 0 0 Dest Dreg x x x Source Dreg sh_mag Dreg Dreg_lo ASHIFT Dreg_lo BY Dreg_lo Arithmetic Shift 0xC600 1000 0xC600 1E3F...

Страница 849: ...Dreg_lo S Arithmetic Shift 0xC600 7000 0xC600 7E3F 1 1 0 0 0 1 1 0 0 x x 0 0 0 0 0 0 1 1 1 Dest Dreg x x x Source Dreg sh_mag Dreg Dreg_hi ASHIFT Dreg_hi BY Dreg_lo S Arithmetic Shift 0xC602 0000 0xC...

Страница 850: ...on NOTE This Preg Preg 1 instruction produces the same opcode as the special case of the Preg Preg Preg Add instruction where both input operands are the same Preg e g p3 p0 p0 that accom plishes the...

Страница 851: ...reg Dreg_hi Dreg_hi uimm4 Logical Shift 0xC680 8000 0xC680 8E7F 1 1 0 0 0 1 1 0 1 x x 0 0 0 0 0 1 0 0 0 Dest Dreg uimm4 Source Dreg Dreg_lo Dreg_lo uimm4 Logical Shift 0xC680 9000 0xC680 9E7F 1 1 0 0...

Страница 852: ...5 0 0 0 A0 A0 uimm5 Logical Shift 0xC683 4000 0xC683 40F8 1 1 0 0 0 1 1 0 1 x x 0 0 0 1 1 0 1 0 0 0 0 0 uimm5 0 0 0 A0 A0 uimm5 Logical Shift 0xC683 5100 0xC683 51F8 1 1 0 0 0 1 1 0 1 x x 0 0 0 1 1 0...

Страница 853: ...Dreg_lo BY Dreg_lo Logical Shift 0xC600 B000 0xC600 BE3F 1 1 0 0 0 1 1 0 0 x x 0 0 0 0 0 1 0 1 1 Dest Dreg x x x Source Dreg sh_mag Dreg Dreg_hi LSHIFT Dreg_hi BY Dreg_lo Logical Shift 0xC602 8000 0xC...

Страница 854: ...x 0 0 0 1 1 1 0 0 1 0 0 0 imm6 0 0 0 A1 ROT A1 BY imm6 Rotate 0xC602 C000 0xC602 CE3F 1 1 0 0 0 1 1 0 0 x x 0 0 0 1 0 1 1 0 0 Dest Dreg x x x Source Dreg rot_mag Dreg Dreg ROT Dreg BY Dreg_lo Rotate...

Страница 855: ...0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 A1 ABS A1 Absolute Value 0xC410 C03F 1 1 0 0 0 1 0 x x x 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 A1 ABS A1 A0 ABS A0 Absolute Value 0xC407 8000 0xC407 8E38 1 1 0 0...

Страница 856: ...Add 0xC402 4000 0xC402 4E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 1 0 0 1 0 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg_lo Dreg_lo Dreg_hi NS Add 0xC402 8000 0xC402 8E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 1 0...

Страница 857: ...i NS Add 0xC402 2000 0xC402 2E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 1 0 0 0 1 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg_lo Dreg_lo Dreg_lo S Add 0xC402 6000 0xC402 6E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 1...

Страница 858: ...2 EE3F 1 1 0 0 0 1 0 x x x 1 0 0 0 1 0 1 1 1 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg_hi Dreg_hi Dreg_hi S Add Subtract Prescale Down 0xC405 9000 0xC405 9E3F 1 1 0 0 0 1 0 x x x 0 0 0 1 0 1...

Страница 859: ...0 0 0 Source 0 Dreg Source 1 Dreg Dreg_hi Dreg Dreg RND12 Add Subtract Prescale Up 0xC405 4000 0xC405 4E3F 1 1 0 0 0 1 0 x x x 0 0 0 1 0 1 0 1 0 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg_lo D...

Страница 860: ...8000 0xC607 8E3F 1 1 0 0 0 1 1 0 0 x x 0 0 1 1 1 1 0 0 0 Dest Dreg x x x Source 0 Dreg Source 1 Dreg Dreg_lo EXPADJ Dreg_lo Dreg_lo Exponent Detection 0xC607 C000 0xC607 CE3F 1 1 0 0 0 1 1 0 0 x x 0...

Страница 861: ...00 0x443F 0 1 0 0 0 1 0 0 0 0 Source Preg Dest Preg Preg Preg Modify Decrement 0x9E70 0x9E7F 1 0 0 1 1 1 1 0 0 1 1 1 Mreg Ireg Ireg Mreg Modify Increment 0xC40B 803F 1 1 0 0 0 1 0 x x x 0 0 1 0 1 1 1...

Страница 862: ...parallel with a Multiply 16 Bit Operands instruction add 0x0800 0000 to the Multiply 16 Bit Operands opcode Dreg_hi A0 A1 Multiply 16 Bit Operands 0xC200 2000 0xC200 27FF 1 1 0 0 0 0 1 0 0 0 0 0 0 0...

Страница 863: ...Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_lo Dreg_lo_hi Dreg_lo_hi S2RND Multiply 16 Bit Operands 0xC320 200 0xC320 27FF0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 Dreg half Dest Dreg src_reg_ 0...

Страница 864: ...0 0 Dreg half Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg NOTE When issuing compatible load store instructions in parallel with a Multiply 16 Bit Operands instruction add 0x0800 0000 to the Multiply 16...

Страница 865: ...erands 0xC224 0000 0xC224 C1FF 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 Dreg half 0 0 0 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi Dreg_lo_hi Dreg_lo_hi S2RND Multiply 16 Bit Operands 0xC324 0000 0x...

Страница 866: ...Bit Operands 0xC254 0000 0xC254 C1FF 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 Dreg half 0 0 0 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi Dreg_lo_hi Dreg_lo_hi T M Multiply 16 Bit Operands 0xC2D4 000...

Страница 867: ...reg_ 0 Dreg src_reg_ 1 Dreg Dreg_odd Dreg_lo_hi Dreg_lo_hi FU Multiply 16 Bit Operands 0xC30C 0000 0xC30C C1FF 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 Dreg half 0 0 0 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1...

Страница 868: ...1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 Dreg half 0 0 0 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_odd Dreg_lo_hi Dreg_lo_hi S2RND M Multiply 16 Bit Operands 0xC33C 0000 0xC33C C1FF 1 1 0 0 0 0 1 1 0 0...

Страница 869: ...Multiply and Multiply Accumulate to Accumulator 0xC083 0000 0xC083 063F 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 Dreg half 0 0 0 src_reg_ 0 Dreg src_reg_ 1 Dreg A0 Dreg_lo_hi Dreg_lo_hi FU Multiply a...

Страница 870: ...0 0 1 Dreg half 0 0 0 src_reg_ 0 Dreg src_reg_ 1 Dreg NOTE When issuing compatible load store instructions in parallel with a Multiply and Multiply Accumu late instruction add 0x0800 0000 to the Mult...

Страница 871: ...ate to Accumulator 0xC080 1800 0xC080 D83F 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 Dreg half 0 1 1 0 0 0 0 0 src_reg_ 0 Dreg src_reg_ 1 Dreg A1 Dreg_lo_hi Dreg_lo_hi FU Multiply and Multiply Accumulate to Acc...

Страница 872: ...y Accumulate to Accumulator 0xC081 1800 0xC081 D83F 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 Dreg half 0 1 1 0 0 0 0 0 src_reg_ 0 Dreg src_reg_ 1 Dreg A1 Dreg_lo_hi Dreg_lo_hi FU Multiply and Multiply Accumula...

Страница 873: ...late to Accumulator 0xC082 1800 0xC082 D83F 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 Dreg half 0 1 1 0 0 0 0 0 src_reg_ 0 Dreg src_reg_ 1 Dreg A1 Dreg_lo_hi Dreg_lo_hi FU Multiply and Multiply Accumulate to Ac...

Страница 874: ...es the input operand register to the right of the operand NOTE When issuing compatible load store instructions in parallel with a Multiply and Multiply Accumu late instruction add 0x0800 0000 to the M...

Страница 875: ...alf Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi S2RND Multiply and Multiply Accumulate to Half Register 0xC123 2000 0xC123 27FF 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0...

Страница 876: ...umulate to Half Register 0xC043 2800 0xC043 2FFF 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 Dreg half Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi T Multiply and Multiply...

Страница 877: ...0 Dreg src_reg_ 1 Dreg Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi FU Multiply and Multiply Accumulate to Half Register 0xC103 3000 0xC103 37FF 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 Dreg half Dest Dreg src_r...

Страница 878: ...iply and Multiply Accumulate opcode Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi IH Multiply and Multiply Accumulate to Half Register 0xC004 1800 0xC004 D9FF 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 Dreg half 0 1 1 0 0 De...

Страница 879: ...te to Half Register 0xC124 1800 0xC124 D9FF 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 Dreg half 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi ISS2 Multiply and Multiply Ac...

Страница 880: ...1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi TFU M Multiply and Multiply Accumulate to Half Register 0xC034 1800 0xC034 D9FF 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 Dreg...

Страница 881: ...to Half Register 0xC185 1800 0xC185 D9FF 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 Dreg half 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi IU Multiply and Multiply Accumul...

Страница 882: ...mulate to Half Register 0xC095 1800 0xC095 D9FF 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 Dreg half 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi FU M Multiply and Multipl...

Страница 883: ...f 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg NOTE When issuing compatible load store instructions in parallel with a Multiply and Multiply Accumu late instruction add 0x0800 0000 to the Multi...

Страница 884: ...umulate to Half Register 0xC026 1800 0xC026 D9FF 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 Dreg half 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi S2RND Multiply and Multi...

Страница 885: ...o Half Register 0xC056 1800 0xC056 D9FF 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 Dreg half 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi T M Multiply and Multiply Accumul...

Страница 886: ...des the destination Data Register src_reg_0 Dreg encodes the input operand register to the left of the operand src_reg_1 Dreg encodes the input operand register to the right of the operand NOTE When i...

Страница 887: ...ply Accumulate opcode Dreg_even A0 Dreg_lo_hi Dreg_lo_hi ISS2 Multiply and Multiply Accumulate to Data Register 0xC00D 0800 0xC00D 0FFF 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 Dreg half Dest Dreg sr...

Страница 888: ...Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_even A0 Dreg_lo_hi Dreg_lo_hi FU Multiply and Multiply Accumulate to Data Register 0xC10D 1000 0xC10D 17FF 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 Dreg hal...

Страница 889: ...Data Register 0xC028 1800 0xC028 D9FF 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 Dreg half 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi S2RND Multiply and Multiply Accum...

Страница 890: ...and Multiply Accumulate opcode Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi ISS2 M Multiply and Multiply Accumulate to Data Register 0xC009 1800 0xC009 D9FF 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 Dreg half 0 1 1 0 0 D...

Страница 891: ...0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi IS M Multiply and Multiply Accumulate to Data Register 0xC039 1800 0xC039 D9FF 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 Dreg half 0...

Страница 892: ...cumulate to Data Register 0xC12A 1800 0xC12A D9FF 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 Dreg half 0 1 1 0 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi ISS2 Multiply and Mult...

Страница 893: ...opcode Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi ISS2 M Multiply and Multiply Accumulate to Data Register LEGEND Dreg half determines which halves of the input operand registers to use Dreg half Dreg_lo Dreg_...

Страница 894: ...0 1 0 x x x 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 A1 A0 Negate Two s Complement 0xC42E 403F 1 1 0 0 0 1 0 x x x 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 A1 A1 Negate Two s Complement 0xC40E C...

Страница 895: ...Dreg Dreg_lo SIGNBITS Dreg Sign Bit 0xC605 4000 0xC605 4E07 1 1 0 0 0 1 1 0 0 x x 0 0 1 0 1 0 1 0 0 Dest Dreg x x x 0 0 0 Source Dreg Dreg_lo SIGNBITS Dreg_lo Sign Bit 0xC605 8000 0xC605 8E07 1 1 0 0...

Страница 896: ...ource 1 Dreg Dreg_lo Dreg_lo Dreg_lo NS Subtract 0xC403 4000 0xC403 4E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 1 1 0 1 0 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg_lo Dreg_lo Dreg_hi NS Subtract 0xC403...

Страница 897: ...S Subtract 0xC403 2000 0xC403 2E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 1 1 0 0 1 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg_lo Dreg_lo Dreg_lo S Subtract 0xC403 6000 0xC403 6E3F 1 1 0 0 0 1 0 x x x 0...

Страница 898: ..._hi S Subtract 0xC423 A000 0xC423 AE3F 1 1 0 0 0 1 0 x x x 1 0 0 0 1 1 1 0 1 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg_hi Dreg_hi Dreg_lo S Subtract 0xC423 E000 0xC423 EE3F 1 1 0 0 0 1 0 x x...

Страница 899: ...0 1 0 0 1 0 0 SSYNC Force Emulation 0x0025 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 EMUEXCPT Disable Interrupts 0x0030 0x0037 0 0 0 0 0 0 0 0 0 0 1 1 Dreg CLI Dreg Enable Interrupts 0x0040 0x0047 0 0 0 0 0 0...

Страница 900: ...No Op 0xC803 1800 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 MNOP when issued in parallel with two compatible load store instructions Abort 0x002F 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1...

Страница 901: ...6 5 4 3 2 1 0 Data Cache Prefetch 0x0240 0x0247 0 0 0 0 0 0 1 0 0 1 0 0 0 Preg PREFETCH Preg Data Cache Prefetch 0x0260 0x0267 0 0 0 0 0 0 1 0 0 1 1 0 0 Preg PREFETCH Preg Data Cache Flush 0x0250 0x0...

Страница 902: ...800 0xC60D 8E3F0 1 1 0 0 0 1 1 0 0 x x 0 1 1 0 1 1 0 0 0 Dest Dreg x x x Source 0 Dreg Source 1 Dreg Dreg ALIGN24 Dreg Dreg Disable Alignment Exception for Load 0xC412 C000 1 1 0 0 0 1 0 x x x 0 1 0...

Страница 903: ...p Dreg Dest of A0 Op Dreg 1 1 1 1 1 1 NOTE When issuing compatible load store instructions in parallel with a Dual 16 Bit Accumulator Extraction with Addition instruction add 0x0800 0000 to the Dual 1...

Страница 904: ...0 0 0 Source 0 Dreg Source 1 Dreg NOTE When issuing compatible load store instructions in parallel with a Quad 8 Bit Average Byte instruction add 0x0800 0000 to the Quad 8 Bit Average Byte opcode Dre...

Страница 905: ...x 0 1 0 1 1 0 0 1 1 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg BYTEOP2P Dreg_pair Dreg_pair TL R Quad 8 Bit Average Half Word 0xC436 6000 0xC436 7E3F 1 1 0 0 0 1 0 x x x 1 1 0 1 1 0 0 1 1 0 De...

Страница 906: ...ir Quad 8 Bit Subtract Abso lute Accumulate 0xC412 2000 0xC412 203F 1 1 0 0 0 1 0 x x x 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 Source 0 Dreg Source 1 Dreg NOTE When issuing compatible load store instructions...

Страница 907: ...g Dreg VIT_MAX Dreg Dreg ASR Compare Select VIT_MAX 0xC609 8000 0xC609 8E07 1 1 0 0 0 1 1 0 0 x x 0 1 0 0 1 1 0 0 0 Dest Dreg x x x Source 0 Dreg Source 1 Dreg Dreg VIT_MAX Dreg Dreg ASL Compare Selec...

Страница 908: ...Dreg SC0 Vector Add Subtract 0xC400 8000 0xC400 8E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 0 0 1 0 0 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg Dreg Dreg Vector Add Subtract 0xC400 A000 0xC400 AE3F 1 1...

Страница 909: ...Vector Add Subtract 0xC400 7000 0xC400 7E3F 1 1 0 0 0 1 0 x x x 0 0 0 0 0 0 0 1 1 1 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg Dreg Dreg SC0 Vector Add Subtract 0xC400 C000 0xC400 CE3F 1 1 0 0...

Страница 910: ...0xC401 C000 0xC401 CFFF 1 1 0 0 0 1 0 x x x 0 0 0 0 0 1 1 1 0 0 Dest 1 Dreg Dest 0 Dreg Source 0 Dreg Source 1 Dreg Dreg Dreg Dreg Dreg Dreg Dreg ASL Vector Add Subtract 0xC401 2000 0xC401 2FFF 1 1 0...

Страница 911: ...Subtract 0xC401 3000 0xC401 3FFF 1 1 0 0 0 1 0 x x x 0 0 0 0 0 1 0 0 1 1 Dest 1 Dreg Dest 0 Dreg Source 0 Dreg Source 1 Dreg Dreg Dreg Dreg Dreg Dreg Dreg SCO Vector Add Subtract 0xC401 B000 0xC401 B...

Страница 912: ...d Subtract 0xC421 A000 0xC421 AFFF 1 1 0 0 0 1 0 x x x 1 0 0 0 0 1 1 0 1 0 Dest 1 Dreg Dest 0 Dreg Source 0 Dreg Source 1 Dreg Dreg Dreg Dreg Dreg Dreg Dreg S ASR Vector Add Subtract 0xC421 E000 0xC42...

Страница 913: ...SCO ASR Vector Add Subtract 0xC421 F000 0xC421 FFFF 1 1 0 0 0 1 0 x x x 1 0 0 0 0 1 1 1 1 1 Dest 1 Dreg Dest 0 Dreg Source 0 Dreg Source 1 Dreg Dreg Dreg Dreg Dreg Dreg Dreg SCO ASL Vector Add Subtrac...

Страница 914: ...metic Shift 0xC681 0100 0xC681 0FFF 1 1 0 0 0 1 1 0 1 x x 0 0 0 0 1 0 0 0 0 Dest Dreg 2 s complement of uimm5 Source Dreg Dreg Dreg uimm5 V Vector Arithmetic Shift 0xC681 4000 0xC681 4EFF 1 1 0 0 0 1...

Страница 915: ...0 0 0 1 1 0 0 0 0 0 Dest Dreg 0 0 0 Source 0 Dreg Source 1 Dreg Dreg MAX Dreg Dreg V Vector Minimum 0xC406 4000 0xC406 4E3F 1 1 0 0 0 1 0 x x x 0 0 0 1 1 0 0 1 0 0 Dest Dreg 0 0 0 Source 0 Dreg Sourc...

Страница 916: ...c_reg_ 1 Dreg Dreg_lo Dreg_lo_hi Dreg_lo_hi Dreg_hi Dreg_lo_hi Dreg_lo_hi T Vector Multiply 0xC2C4 2000 0xC2C4 E7FF 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 Dreg half 1 1 0 0 Dreg half 0 Dest Dreg src_reg_ 0 D...

Страница 917: ...1 Dreg Dreg_lo Dreg_lo_hi Dreg_lo_hi Dreg_hi Dreg_lo_hi Dreg_lo_hi FU M Vector Multiply 0xC314 2000 0xC314 E7FF 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 Dreg half 1 1 0 0 Dreg half 0 Dest Dreg src_reg_ 0 Dreg...

Страница 918: ...eg_lo_hi ISS2 M Vector Multiply 0xC374 2000 0xC374 E7FF 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 Dreg half 1 1 0 0 Dreg half 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg NOTE When issuing compatible load store...

Страница 919: ...Dreg Dreg_even Dreg_lo_hi Dreg_lo_hi Dreg_odd Dreg_lo_hi Dreg_lo_hi S2RND Vector Multiply 0xC32C 2000 0xC32C E7FF 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 Dreg half 1 1 0 0 Dreg half 0 Dest Dreg src_reg_ 0 Dre...

Страница 920: ...lo_hi S2RND M Vector Multiply 0xC33C 2000 0xC33C E7FF 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 Dreg half 1 1 0 0 Dreg half 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg NOTE When issuing compatible load store in...

Страница 921: ...and src_reg_1 Dreg encodes the input operand register to the right of the operand Vector Multiply and Multiply Accumulate NOTE When issuing compatible load store instructions in parallel with a Vector...

Страница 922: ...iply and Multiply Accumulate 0xC010 0000 0xC013 DE3F 1 1 0 0 0 0 0 0 0 0 0 1 0 0 op1 Dreg half 1 0 op0 Dreg half 0 0 0 0 src_reg_ 0 Dreg src_reg_ 1 Dreg A0 or Dreg_lo_hi Dreg_lo_hi A1 or Dreg_lo_hi Dr...

Страница 923: ...half 1 Dreg_lo Dreg_lo 0 0 Dreg_lo Dreg_hi 0 1 Dreg_hi Dreg_lo 1 0 Dreg_hi Dreg_hi 1 1 src_reg_0 Dreg encodes the input operand register to the left of the operand src_reg_1 Dreg encodes the input op...

Страница 924: ...eg Dreg_lo A0 or Dreg_lo_hi Dreg_lo_hi Dreg_hi A1 or Dreg_lo_hi Dreg_lo_hi IS Vector Multiply and Multiply Accumulate 0xC184 2000 0xC187 FFFF 1 1 0 0 0 0 0 1 1 0 0 0 0 1 op1 Dreg half 1 1 op0 Dreg hal...

Страница 925: ...lo A0 or Dreg_lo_hi Dreg_lo_hi Dreg_hi A1 or Dreg_lo_hi Dreg_lo_hi IH Vector Multiply and Multiply Accumulate 0xC014 2000 0xC017 FFFF 1 1 0 0 0 0 0 0 0 0 0 1 0 1 op1 Dreg half 1 1 op0 Dreg half 0 Dest...

Страница 926: ...2000 0xC0D7 FFFF 1 1 0 0 0 0 0 0 1 1 0 1 0 1 op1 Dreg half 1 1 op0 Dreg half 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_lo A0 or Dreg_lo_hi Dreg_lo_hi Dreg_hi A1 or Dreg_lo_hi Dreg_lo_hi TFU M...

Страница 927: ...tiply and Multi ply Accumulate instruction add 0x0800 0000 to the Vector Multiply and Multiply Accumulate opcode NOTE The ranges of these vector opcodes naturally overlaps with the component scalar Mu...

Страница 928: ...0 0 Dreg_lo Dreg_hi 0 1 Dreg_hi Dreg_lo 1 0 Dreg_hi Dreg_hi 1 1 Dest Dreg encodes the destination Data Register src_reg_0 Dreg encodes the input operand register to the left of the operand src_reg_1...

Страница 929: ...en A0 or Dreg_lo_hi Dreg_lo_hi Dreg_odd A1 or Dreg_lo_hi Dreg_lo_hi IS Vector Multiply and Multiply Accumulate 0xC02C 2000 0xC02F FFFF 1 1 0 0 0 0 0 0 0 0 1 0 1 1 op1 Dreg half 1 1 op0 Dreg half 0 Des...

Страница 930: ...0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg Dreg_even A0 or Dreg_lo_hi Dreg_lo_hi Dreg_odd A1 or Dreg_lo_hi Dreg_lo_hi S2RND M Vector Multiply and Multiply Accumulate 0xC13C 2000 0xC13F FFFF 1 1 0 0 0...

Страница 931: ...Dreg_lo Dreg_hi 0 1 Dreg_hi Dreg_lo 1 0 Dreg_hi Dreg_hi 1 1 Dest Dreg encodes the destination Data Register src_reg_0 Dreg encodes the input operand register to the left of the operand src_reg_1 Dreg...

Страница 932: ...e 0xC104 0000 0xC107 DFFF 1 1 0 0 0 0 0 1 0 0 0 0 0 1 op1 Dreg half 1 0 op0 Dreg half 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg A0 or Dreg_lo_hi Dreg_lo_hi Dreg_hi A1 or Dreg_lo_hi Dreg_lo_hi IS Vec...

Страница 933: ...r Multiply and Multi ply Accumulate instruction add 0x0800 0000 to the Vector Multiply and Multiply Accumulate opcode NOTE The ranges of these vector opcodes naturally overlaps with the component scal...

Страница 934: ...o 0 0 Dreg_lo Dreg_hi 0 1 Dreg_hi Dreg_lo 1 0 Dreg_hi Dreg_hi 1 1 Dest Dreg encodes the destination Data Register src_reg_0 Dreg encodes the input operand register to the left of the operand src_reg_1...

Страница 935: ...C 0000 0xC10F DFFF 1 1 0 0 0 0 0 1 0 0 0 0 1 1 op1 Dreg half 1 0 op0 Dreg half 0 Dest Dreg src_reg_ 0 Dreg src_reg_ 1 Dreg A0 or Dreg_lo_hi Dreg_lo_hi Dreg_odd A1 or Dreg_lo_hi Dreg_lo_hi IS Vector Mu...

Страница 936: ...Vector Multiply and Multi ply Accumulate instruction add 0x0800 0000 to the Vector Multiply and Multiply Accumulate opcode NOTE The ranges of these vector opcodes naturally overlaps with the component...

Страница 937: ...A0 and Dreg half 1 controls MAC1 oper ating on A1 Dreg half 0 and Dreg half 1 Dreg_lo Dreg_lo 0 0 Dreg_lo Dreg_hi 0 1 Dreg_hi Dreg_lo 1 0 Dreg_hi Dreg_hi 1 1 Dest Dreg encodes the destination Data Reg...

Страница 938: ...g_hi Vector Pack 0xC604 8000 0xC604 8E3F 1 1 0 0 0 1 1 0 0 x x 0 0 1 0 0 1 0 0 0 Dest Dreg x x x Source 0 Dreg Source 1 Dreg Dreg PACK Dreg_hi Dreg_lo Vector Pack 0xC604 C000 0xC604 CE3F 1 1 0 0 0 1 1...

Страница 939: ...Dest 0 Dreg Source Dreg 0 0 0 Dreg Dreg SEARCH Dreg LT Vector Search 0xC40D C000 0xC40D EFF8 1 1 0 0 0 1 0 x x x 0 0 1 1 0 1 1 1 0 0 Dest 1 Dreg Dest 0 Dreg Source Dreg 0 0 0 NOTE When issuing compati...

Страница 940: ...Opcode Instructions Sheet 1 of 14 Instruction and Version Opcode Range No Op NOP 0x0000 Return RTS 0x0010 Return RTI 0x0011 Return RTX 0x0012 Return RTN 0x0013 Return RTE 0x0014 Idle IDLE 0x0020 Core...

Страница 941: ...TSET Preg 0x00B0 0x00B5 Pop mostreg SP 0x0100 0x013F Push SP allreg 0x0140 0x017F Move CC Dreg CC 0x0200 0x0207 Move CC CC Dreg 0x0208 0x020F Negate CC CC CC 0x0218 Data Cache Prefetch PREFETCH Preg 0...

Страница 942: ...033F Move CC CC statbit 0x0340 0x035F Move CC CC statbit 0x0360 0x037F Move CC statbit CC 0x0380 0x039F Move CC statbit CC 0x03A0 0x03BF Move CC statbit CC 0x03C0 0x03DF Move CC statbit CC 0x03E0 0x03...

Страница 943: ...onditional IF CC Dreg Preg 0x0740 0x077F Move Conditional IF CC Preg Dreg 0x0780 0x07BF Move Conditional IF CC Preg Preg 0x07C0 0x07FF Compare Data Register CC Dreg Dreg 0x0800 0x083F Compare Pointer...

Страница 944: ...er CC Dreg imm3 0x0C00 0x0C3F Compare Pointer Register CC Preg imm3 0x0C40 0x0C7F Compare Data Register CC Dreg imm3 0x0C80 0x0CBF Compare Pointer Register CC Preg imm3 0x0CC0 0x0CFF Compare Data Regi...

Страница 945: ...egister genreg genreg genreg dagreg dagreg genreg dagreg dagreg genreg USP USP genreg Dreg sysreg sysreg Dreg sysreg Preg sysreg USP 0x3000 0x3FFF Arithmetic Shift Dreg Dreg 0x4000 0x403F Logical Shif...

Страница 946: ...340 0x437F Negate Two s Complement Dreg Dreg 0x4380 0x43BF NOT One s Complement Dreg Dreg 0x43C0 0x43FF Modify Decrement Preg Preg 0x4400 0x443F Logical Shift Preg Preg 2 0x4440 0x447F Logical Shift P...

Страница 947: ...FF OR Dreg Dreg Dreg 0x5600 0x57FF Exclusive OR Dreg Dreg Dreg 0x5800 0x59FF Add Preg Preg Preg 0x5A00 0x5BFF Logical Shift Preg Preg 1 0x5A00 0x5BFF NOTE The special case of the Preg Preg Preg Add in...

Страница 948: ...Load High Data Register Half Dreg_hi W Preg 0x8400 0x85FF Load High Data Register Half Dreg_hi W Preg Preg 0x8401 0x85FE Load Half Word Zero Extended Dreg W Preg Preg Z 0x8601 0x87FE Load Half Word Si...

Страница 949: ...Preg Dreg 0x9200 0x923F Store Pointer Register Preg Preg 0x9240 0x927F Store Data Register Preg Dreg 0x9280 0x92BF Store Pointer Register Preg Preg 0x92C0 0x92FF Store Data Register Preg Dreg 0x9300 0...

Страница 950: ...xtended Dreg B Preg Z 0x9800 0x983F Load Byte Sign Extended Dreg B Preg X 0x9840 0x987F Load Byte Zero Extended Dreg B Preg Z 0x9880 0x98BF Load Byte Sign Extended Dreg B Preg X 0x98C0 0x98FF Load Byt...

Страница 951: ...Load High Data Register Half Dreg_hi W Ireg 0x9D40 0x9D5F Load Data Register Dreg Ireg Mreg 0x9D80 0x9DFF Store Data Register Ireg Dreg 0x9E00 0x9E1F Store Low Data Register Half W Ireg Dreg_lo 0x9E20...

Страница 952: ...3 Subtract Immediate Ireg 2 0x9F64 0x9F67 Add Immediate Ireg 4 0x9F68 0x9F6B Subtract Immediate Ireg 4 0x9F6C 0x9F6F Store Data Register Ireg Mreg Dreg 0x9F80 0x9FFF Load Data Register Dreg Preg uimm6...

Страница 953: ...oad Data Register Dreg FP uimm7m4 0xB800 0xB9F7 Load Pointer Register Preg FP uimm7m4 0xB808 0xB9FF Store Data Register FP uimm7m4 Dreg 0xBA00 0xBBF7 Store Pointer Register FP uimm7m4 Preg 0xBA08 0xBB...

Страница 954: ...ccumulate to Accumulator A1 Dreg_lo_hi Dreg_lo_hi 0xC001 1800 0xC001 D83F Multiply and Multiply Accumulate to Accumulator A1 Dreg_lo_hi Dreg_lo_hi 0xC002 1800 0xC002 D83F Multiply and Multiply Accumul...

Страница 955: ...reg_hi A1 Dreg_lo A0 0xC007 3800 0xC007 39C0 Multiply and Multiply Accumulate to Data Register Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi 0xC008 1800 0xC008 D9FF Vector Multiply and Multiply Accumulate Dreg_ev...

Страница 956: ...Dreg_lo_hi Dreg_lo_hi M 0xC014 2000 0xC017 FFFF Multiply and Multiply Accumulate to Half Register Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi M 0xC015 1800 0xC015 D9FF Multiply and Multiply Accumulate to Half R...

Страница 957: ...i Dreg_lo_hi S2RND 0xC026 1800 0xC026 D9FF Move Register Half Dreg_hi A1 S2RND 0xC027 1800 0xC027 19C0 Move Register Half Dreg_lo A0 Dreg_hi A1 S2RND Dreg_hi A1 Dreg_lo A0 S2RND 0xC027 3800 0xC027 39C...

Страница 958: ...ta Register Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi S2RND M 0xC039 1800 0xC039 D9FF Multiply and Multiply Accumulate to Data Register Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi S2RND M 0xC03A 1800 0xC03A D9FF Vector...

Страница 959: ...i Dreg_lo_hi T M 0xC055 1800 0xC055 D9FF Multiply and Multiply Accumulate to Half Register Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi T M 0xC056 1800 0xC056 D9FF Vector Multiply and Multiply Accumulate A0 or Dr...

Страница 960: ...lo A0 or Dreg_lo_hi Dreg_lo_hi A1 or Dreg_lo_hi Dreg_lo_hi FU 0xC080 2000 0xC083 FFFF Multiply and Multiply Accumulate to Accumulator A1 Dreg_lo_hi Dreg_lo_hi FU 0xC081 1800 0xC081 D83F Multiply and M...

Страница 961: ...Dreg_hi A1 FU 0xC087 1800 0xC087 19C0 Move Register Half Dreg_lo A0 Dreg_hi A1 FU Dreg_hi A1 Dreg_lo A0 FU 0xC087 3800 0xC087 39C0 Multiply and Multiply Accumulate to Data Register Dreg_odd A1 Dreg_lo...

Страница 962: ...reg_lo_hi Dreg_lo_hi FU M 0xC096 1800 0xC096 D9FF Multiply and Multiply Accumulate to Data Register Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi FU M 0xC098 1800 0xC098 D9FF Multiply and Multiply Accumulate to D...

Страница 963: ...Accumulate to Half Register Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi TFU M 0xC0D6 1800 0xC0D6 D9FF Vector Multiply and Multiply Accumulate A0 or Dreg_lo_hi Dreg_lo_hi A1 or Dreg_lo_hi Dreg_lo_hi IS 0xC100 00...

Страница 964: ...eg_lo_hi Dreg_hi A1 or Dreg_lo_hi Dreg_lo_hi IS 0xC104 2000 0xC107 FFFF Multiply and Multiply Accumulate to Half Register Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi IS 0xC105 1800 0xC105 D9FF Multiply and Multi...

Страница 965: ...eg_hi A1 or Dreg_lo_hi Dreg_lo_hi IS M 0xC114 2000 0xC117 FFFF Multiply and Multiply Accumulate to Half Register Dreg_hi A1 Dreg_lo_hi Dreg_lo_hi IS M 0xC115 1800 0xC115 D9FF Multiply and Multiply Acc...

Страница 966: ...ove Register Half Dreg_lo A0 Dreg_hi A1 ISS2 Dreg_hi A1 Dreg_lo A0 ISS2 0xC127 3800 0xC127 39C0 Multiply and Multiply Accumulate to Data Register Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi ISS2 0xC128 1800 0xC...

Страница 967: ...Dreg_odd A1 Dreg_lo_hi Dreg_lo_hi ISS2 M 0xC13A 1800 0xC13A D9FF Vector Multiply and Multiply Accumulate Dreg_even A0 or Dreg_lo_hi Dreg_lo_hi Dreg_odd A1 or Dreg_lo_hi Dreg_lo_hi ISS2 M 0xC13C 2000...

Страница 968: ..._lo_hi Dreg_lo_hi IH M 0xC176 1800 0xC176 D9FF Multiply and Multiply Accumulate to Half Register Dreg_lo A0 Dreg_lo_hi Dreg_lo_hi IU 0xC183 2000 0xC183 27FF Multiply and Multiply Accumulate to Half Re...

Страница 969: ..._hi A1 Dreg_lo_hi Dreg_lo_hi IU M 0xC196 1800 0xC196 D9FF Multiply 16 Bit Operands Dreg_lo Dreg_lo_hi Dreg_lo_hi 0xC200 2000 0xC200 27FF Multiply 16 Bit Operands Dreg_hi Dreg_lo_hi Dreg_lo_hi 0xC204 0...

Страница 970: ...27FF Multiply 16 Bit Operands Dreg_odd Dreg_lo_hi Dreg_lo_hi S2RND 0xC22C 0000 0xC22C C1FF Vector Multiply Dreg_even Dreg_lo_hi Dreg_lo_hi Dreg_odd Dreg_lo_hi Dreg_lo_hi S2RND 0xC22C 2000 0xC22C E7FF...

Страница 971: ...E7FF Multiply 16 Bit Operands Dreg_even Dreg_lo_hi Dreg_lo_hi FU 0xC288 2000 0xC288 27FF Multiply 16 Bit Operands Dreg_odd Dreg_lo_hi Dreg_lo_hi FU 0xC28C 0000 0xC28C C1FF Vector Multiply Dreg_even D...

Страница 972: ...ctor Multiply Dreg_lo Dreg_lo_hi Dreg_lo_hi Dreg_hi Dreg_lo_hi Dreg_lo_hi IS 0xC304 2000 0xC304 E7FF Multiply 16 Bit Operands Dreg_even Dreg_lo_hi Dreg_lo_hi IS 0xC308 2000 0xC308 27FF Multiply 16 Bit...

Страница 973: ...FF Multiply 16 Bit Operands Dreg_hi Dreg_lo_hi Dreg_lo_hi ISS2 M 0xC334 0000 0xC334 C1FF Vector Multiply Dreg_lo Dreg_lo_hi Dreg_lo_hi Dreg_hi Dreg_lo_hi Dreg_lo_hi ISS2 M 0xC334 2000 0xC334 E7FF Mult...

Страница 974: ...4 C1FF Vector Multiply Dreg_lo Dreg_lo_hi Dreg_lo_hi Dreg_hi Dreg_lo_hi Dreg_lo_hi IU M 0xC394 2000 0xC394 E7FF Vector Add Subtract Dreg Dreg Dreg 0xC400 0000 0xC400 0E3F Vector Add Subtract Dreg Dreg...

Страница 975: ...Dreg Dreg 0xC401 0000 0xC401 0FFF Vector Add Subtract Dreg Dreg Dreg Dreg Dreg Dreg CO 0xC401 1000 0xC401 1FFF Vector Add Subtract Dreg Dreg Dreg Dreg Dreg Dreg S 0xC401 2000 0xC401 2FFF Vector Add S...

Страница 976: ...0xC402 4000 0xC402 4E3F Add Dreg_lo Dreg_lo Dreg_hi S 0xC402 6000 0xC402 6E3F Add Dreg_lo Dreg_hi Dreg_lo NS 0xC402 8000 0xC402 8E3F Add Dreg_lo Dreg_hi Dreg_lo S 0xC402 A000 0xC402 AE3F Add Dreg_lo...

Страница 977: ...eg Dreg Dreg Dreg 0xC404 8000 0xC404 8FFF Vector Add Subtract Dreg Dreg Dreg Dreg Dreg Dreg S 0xC404 A000 0xC404 AFFF Add Subtract Prescale Up Dreg_lo Dreg Dreg RND12 0xC405 0000 0xC405 0E3F Add Subtr...

Страница 978: ...7 EFC0 Load Immediate A0 0 0xC408 003F Saturate A0 A0 S 0xC408 203F Load Immediate A1 0 0xC408 403F Saturate A1 A1 S 0xC408 603F Load Immediate A1 A0 0 0xC408 803F Saturate A1 A1 S A0 A0 S 0xC408 A03F...

Страница 979: ...g_hi SIGN Dreg_lo Dreg_lo 0xC40C 0000 0xC40C 0E38 Dual 16 Bit Accumulator Extraction with Addition Dreg A1 L A1 H Dreg A0 L A0 H 0xC40C 403F 0xC40C 4FC0 Round to Half Word Dreg_lo Dreg RND 0xC40C C000...

Страница 980: ...0 Vector Add Subtract Dreg A0 A1 Dreg A0 A1 S 0xC411 603F 0xC411 6FC0 Quad 8 Bit Subtract Absolute Accumulate SAA Dreg_pair Dreg_pair 0xC412 0000 0xC412 003F Quad 8 Bit Subtract Absolute Accumulate SA...

Страница 981: ...OP2P Dreg_pair Dreg_pair TL 0xC416 4000 0xC416 6E3F Quad 8 Bit Average Half Word Dreg BYTEOP2P Dreg_pair Dreg_pair TL R 0xC416 6000 0xC416 7E3F Dual 16 Bit Add Clip Dreg BYTEOP3P Dreg_pair Dreg_pair L...

Страница 982: ...reg ASL 0xC421 C000 0xC421 CFFF Vector Add Subtract Dreg Dreg Dreg Dreg Dreg Dreg CO ASL 0xC421 D000 0xC421 DFFF Vector Add Subtract Dreg Dreg Dreg Dreg Dreg Dreg S ASL 0xC421 E000 0xC421 EFFF Vector...

Страница 983: ...0xC423 AE3F Subtract Dreg_hi Dreg_hi Dreg_hi NS 0xC423 C000 0xC423 CE3F Subtract Dreg_hi Dreg_hi Dreg_hi S 0xC423 E000 0xC423 EE3F Add Subtract Prescale Up Dreg_hi Dreg Dreg RND12 0xC425 0000 0xC425 0...

Страница 984: ...reg_pair TH 0xC436 4000 0xC436 6E3F Quad 8 Bit Average Half Word Dreg BYTEOP2P Dreg_pair Dreg_pair TH R 0xC436 6000 0xC436 7E3F Dual 16 Bit Add Clip Dreg BYTEOP3P Dreg_pair Dreg_pair HI 0xC437 0000 0x...

Страница 985: ...Dreg_hi BY Dreg_lo 0xC600 B000 0xC600 BE3F Vector Arithmetic Shift Dreg ASHIFT Dreg BY Dreg_lo V 0xC601 0000 0xC601 0E3F Vector Arithmetic Shift Dreg ASHIFT Dreg BY Dreg_lo V S 0xC601 4000 0xC601 4E3...

Страница 986: ...Dreg_hi Dreg_lo 0xC604 8000 0xC604 8E3F Vector Pack Dreg PACK Dreg_hi Dreg_hi 0xC604 C000 0xC604 CE3F Sign Bit Dreg_lo SIGNBITS Dreg 0xC605 0000 0xC605 0E07 Sign Bit Dreg_lo SIGNBITS Dreg_lo 0xC605 40...

Страница 987: ...g ASL 0xC609 8000 0xC609 8E07 Compare Select VIT_MAX Dreg VIT_MAX Dreg Dreg ASR 0xC609 C000 0xC609 CE07 Bit Field Extraction Dreg EXTRACT Dreg Dreg_lo Z 0xC60A 0000 0xC60A 0E3F Bit Field Extraction Dr...

Страница 988: ...Dreg_hi uimm4 0xC680 3180 0xC680 3FFF Arithmetic Shift Dreg_lo Dreg_lo uimm4 S 0xC680 4000 0xC680 4E7F Arithmetic Shift Dreg_lo Dreg_hi uimm4 S 0xC680 5000 0xC680 5E7F Arithmetic Shift Dreg_hi Dreg_l...

Страница 989: ...0xC681 8E7F Vector Logical Shift Dreg Dreg uimm4 V 0xC681 8180 0xC681 8FFF Arithmetic Shift Dreg Dreg uimm5 0xC682 0100 0xC682 0FFF Arithmetic Shift Dreg Dreg uimm5 S 0xC682 4000 0xC680 4EFF Logical...

Страница 990: ...the address of LOOP_BEGIN determines pcrel5m2 and the address of LOOP_END determines pcrel11m2 0xE080 0000 0xE08F 03FF Zero Overhead Loop Setup LOOP loop_name LC1 LOOP_BEGIN loop_name LOOP_END loop_n...

Страница 991: ...el5m2 and the address of LOOP_END determines pcrel11m2 0xE0E0 0000 0xE0AF F3FF Zero Overhead Loop Setup LOOP loop_name LC1 Preg 1 LOOP_BEGIN loop_name LOOP_END loop_name is mapped to LSETUP pcrel5m2 p...

Страница 992: ...mm17m4 0xE500 0000 0xE53F 7FFF Load Pointer Register Preg Preg uimm17m4 0xE500 8000 0xE53F FFFF Load Half Word Sign Extended Dreg W Preg uimm16m2 X 0xE540 0000 0xE57F 8FFF Load Half Word Sign Extended...

Страница 993: ...Byte B Preg uimm15 Dreg 0xE680 8000 0xE6BF FFFF Store Pointer Register Preg uimm17m4 Preg 0xE700 0000 0xE7EF 8FFF Store Pointer Register Preg uimm17m4 Preg 0xE700 8000 0xE73F FFFF Linkage LINK uimm18...

Страница 994: ...Instructions Listed By Operation Code C 194 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Страница 995: ...efore the value of an unsigned integer is interpreted in the usual binary sense The least significant words of multi ple precision numbers are treated as unsigned numbers Signed numbers supported by t...

Страница 996: ...al 1 M format and an unsigned fractional 0 N format where N is the num ber of bits in the data word and M N 1 The notation used to describe a format consists of two numbers separated by a period the f...

Страница 997: ...meric Formats Figure D 2 Example of Fractional Format Signed Fractional 13 3 Bit Weight Sign Bit Radix Point 0 1 2 15 14 13 2 3 2 2 2 1 210 211 212 3 4 20 21 Unsigned Fractional 13 3 Bit Weight Sign B...

Страница 998: ...687500 4 0 0 000122070312500 4 12 4 12 7 999755859375000 8 0 0 000244140625000 5 11 5 11 15 999511718750000 16 0 0 000488281250000 6 10 6 10 31 999023437500000 32 0 0 000976562500000 7 9 7 9 63 998046...

Страница 999: ...family assembly language allows you to specify whether the inputs are both signed both unsigned or one of each mixed mode The location of the radix point in the result can be derived from its location...

Страница 1000: ...sign bit when both operands are signed yielding a result that is cor rectly formatted When both operands are in 1 15 format the result is 2 30 30 fractional bits A left shift causes the multiplier res...

Страница 1001: ...n the two guard bits then the process can be run without loss of data Later however the block must be adjusted to replace the guard bits before the next process Figure D 5 shows the data after process...

Страница 1002: ...In either case the block exponent is updated to reflect the shift Figure D 5 Block Floating point Adjustment Sign Bit One Guard Bit 0x1FFF 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0x3FFF 0 0 1 1 1 1 1 1 1 1 1...

Страница 1003: ...15 67 32 bit ALU MAC instructions parallel 20 3 32 bit operations 2 29 A A0 accumulator register 2 2 A0 overflow AV0 bit 2 25 A1 accumulator register 2 2 A1 overflow AV1 bit 2 25 AAU address arithmet...

Страница 1004: ...t post modify pre modify DAG data address generator bit reversed addresses 5 15 circular buffer 5 12 indexed 5 8 modes 5 18 addressing continued post modify 5 11 pre modify stack pointer 5 11 transfer...

Страница 1005: ...S0 sticky overflow A0 C 7 AVS1 sticky overflow A1 C 7 AZ zero C 7 CC control code bit C 7 arithmetic status flags continued on ADSP BF535 A 2 summarized 1 15 V overflow D register 1 17 C 7 VS sticky o...

Страница 1006: ...example 2 52 bit set example 2 52 bit test example 2 52 bit toggle example 2 52 bit multiplex BITMUX instruction See BITMUX BITMUX bit multiplex instruction C 45 bit operations instructions 13 1 C 44...

Страница 1007: ...verage half word instruction 18 24 BYTEOP3P dual 16 bit add clip instruction 18 8 BYTEPACK quad 8 bit pack instruction 18 30 BYTEUNPACK quad 8 bit unpack instruction 18 41 C cache address collision 6...

Страница 1008: ...er registers listed 1 21 disabling 1 14 1 21 1 22 C 3 circular addressing continued enabling 1 22 example instructions 1 22 initializing buffer registers 8 11 8 24 8 28 8 42 8 46 8 50 load data regist...

Страница 1009: ...n 6 69 instructions 2 24 4 3 JUMP instruction 4 10 register move 4 20 speculative load execution example 6 69 condition code CC bit See CC bit condition code CC flag bit 4 18 constants imm16 8 4 imm3...

Страница 1010: ...tructions one s population count 13 26 count value WPDACNT 15 0 field 21 12 count value WPIACNT 15 0 field 21 7 CPLB_DIRTY bit 6 57 CPLB_L1_AOW bit 6 57 CPLB_L1_CHBL bit 6 55 6 57 CPLB_LOCK bit 6 55 6...

Страница 1011: ...ata bank access bit 6 40 data banks configuration 6 30 data cache access 6 33 control instructions 6 37 flush instruction C 101 data cache continued invalidation 6 38 L1 memory 6 2 6 29 data cacheabil...

Страница 1012: ...g features 21 1 DEC instruction decode 4 7 DEC stage 4 9 deferring exception processing 4 68 DEPOSIT bit field deposit instruction 13 10 DF1 data fetch 1 4 7 DF2 data fetch 2 4 7 DF2 stage 4 9 direct...

Страница 1013: ...bit operations defined with example 2 29 dual MAC operations example 2 47 DW 1 0 double word index field 6 21 6 40 dynamic power management controller DPMC See DPMC E EAB bus 6 8 6 14 EBIU external bu...

Страница 1014: ...3 4 exception routine example code 4 70 exceptions address violations not flagged 17 3 to 17 9 alignment 7 3 8 8 to 8 50 10 3 10 7 10 10 10 15 10 19 alignment errors prevented 18 6 to 18 41 attempting...

Страница 1015: ...nstruction 12 8 C 43 EXCPT force exception instruction 4 66 16 20 C 99 execute 1 EX1 4 7 execute 2 EX2 4 7 execution cycle count CYCLES and CYCLES2 registers 21 24 execution trace code examples 21 18...

Страница 1016: ...ng and disabling interrupts 4 48 global interrupt disable bit 4 41 GSM global system for mobile communications speech compression routines 2 23 speech vocoder algorithms 2 41 H hardware loops 4 21 res...

Страница 1017: ...he way lock field 6 5 6 7 6 17 IMASK core interrupt mask register 4 31 6 74 IMC L1 instruction memory configuration bit 6 6 6 7 6 19 IMEM_CONTROL instruction memory control register 6 5 6 47 imm16 con...

Страница 1018: ...down C 58 add subtract prescale up C 59 add with shift C 46 AND C 43 arithmetic shift C 46 bit clear C 44 instruction opcodes continued bit field deposit C 44 bit field extraction C 44 bit multiplex...

Страница 1019: ...43 one s population count C 45 OR C 43 pop C 37 pop multiple C 37 push C 37 push multiple C 37 quad 8 bit add C 103 instruction opcodes continued quad 8 bit average byte C 104 quad 8 bit average half...

Страница 1020: ...17 2 instruction test registers 6 19 to 6 23 writing to 6 20 instruction watchpoint address control WPIACTL register 21 7 instruction watchpoint address count WPIACNTn registers 21 5 21 6 instruction...

Страница 1021: ...es 4 32 using hardware loops 4 28 ITEST_COMMAND instruction test command register 6 21 ITEST_DATAx instruction test data registers 6 22 17 2 IVGn bits 4 39 4 40 4 41 IVHW hardware error bit 4 39 4 40...

Страница 1022: ...L1 instruction memory about 6 3 address alignment 6 7 data cache 6 29 definition 6 75 frequency 6 4 overview 6 2 scratchpad data SRAM 6 4 level 2 L2 memory CCLK cycles 6 1 defined 1 5 6 43 enabling c...

Страница 1023: ...stant 1 12 C 6 loop registers initialization 7 15 table of 4 22 zero overhead 4 6 loops branch instructions 7 18 buffer 4 24 conditions evaluation 4 22 counter register 7 17 disabling 4 23 loops conti...

Страница 1024: ...ctor maximum 19 32 C 115 MAX vector maximum instruction 15 30 19 32 media access control See MAC memory See also cache level 1 L1 memory level 1 L1 data memory level 1 L1 instruction memory level 2 L2...

Страница 1025: ...ify increment 15 37 C 61 modify registers M 3 0 5 8 DAGs and circular buffering 5 12 defined 1 14 description C 3 explained 5 3 function in circular addressing 1 21 load data register 8 10 modify decr...

Страница 1026: ...67 C 86 multiply and multiply accumulate to half register instruction 15 58 C 74 multiply without accumulate 2 44 fractional unsigned operand example 2 45 unsigned integer operand example 2 45 N nega...

Страница 1027: ...ction 13 26 opcodes See instruction opcodes operating modes 3 1 to 3 10 operators logical OR 12 6 logical OR assign 11 12 OR 12 6 vector add add 19 18 vector add subtract 19 18 vector subtract add 19...

Страница 1028: ...er unsigned operator IU use with compare instructions 11 2 11 6 integer signed operator IS 9 16 integer unsigned operator IU 9 16 mixed mode M 19 38 19 41 option flags continued no saturate NS negate...

Страница 1029: ...11 4 12 pcrelm2 7 2 PEMUSWx bits 21 20 21 21 pending event requests coordinating 4 38 performance monitor control PFCTL register 21 19 21 20 performance monitor counter PFCNTRn registers 21 19 21 20 p...

Страница 1030: ...ioritization of events 1 6 priority watermark PRIO_MARK 0 3 field 6 36 processor single core bus architecture 6 2 processor core architecture diagram 1 2 2 2 processor mode determination 3 1 emulation...

Страница 1031: ...rs D 4 reading MMRs restriction 3 1 read transfer address 6 14 read write access bit 6 40 read write access RW bit 6 21 real time clock RTC processor idle state 3 10 reg list of registers 8 4 register...

Страница 1032: ...interrupt register return from interrupt RTI instruction See RTI return from NMI RTN instruction 7 10 return from nonmaskable interrupt RTN instruction 7 11 return from nonmaskable interrupt RTN inst...

Страница 1033: ...tructions 15 53 saturate instruction 15 80 C 95 saturation 16 bit register range 1 18 32 bit register range 1 18 40 bit register range 1 18 saturation continued accumulator 1 12 defined 1 17 saving lo...

Страница 1034: ...1 7 1 8 4 35 4 55 SIGN add on instruction 19 3 sign bit SIGNBITS instruction See SIGNBITS SIGNBITS sign bit instruction 15 83 C 95 signed fraction operands T multiply 16 bit operands instruction 15 43...

Страница 1035: ...instructions C 37 stack pointer 1 13 10 7 to 10 19 C 2 stack pointer SP register 4 6 5 6 stalled load instruction 6 34 stalls computation 4 9 DAG 4 9 data memory 4 9 stalls continued pipeline 6 66 reg...

Страница 1036: ...isor single step SSSTEP bit 21 26 supervisor stack preventing exceptions 4 56 supervisor stack pointer SP register 5 6 5 7 supply addressing 5 2 support technical or customer xxviii SWRST software res...

Страница 1037: ...mendation for allocating 4 56 system synchronize instruction C 99 system synchronize SSYNC instruction 16 8 T tag definition 6 76 tag 1 0 field 6 23 tag 19 4 field 6 23 6 42 tag 3 2 field 6 23 6 42 ta...

Страница 1038: ...ly 16 bit operands instruction 15 43 multiply and multiply accumulate to half register instruction 15 58 use with multiply instructions 15 43 15 58 unsigned integer D 1 unsigned numbers data formats 2...

Страница 1039: ...r minimum MIN instruction 19 35 C 115 vector multiply and multiply accumulate instruction 19 41 C 121 vector multiply instruction 19 38 C 115 vector negate two s complement instruction 19 46 C 138 vec...

Страница 1040: ...An data watchpoint address registers 21 10 WPDCNTEN0 bit 21 13 WPDCNTEN1 bit 21 13 WPDREN01 bit 21 13 WPDRINV01 bit 21 13 WPDSRC0 1 0 field 21 13 WPDSRC1 1 0 field 21 13 WPIACNTn instruction watchpoin...

Страница 1041: ...X XOR exclusive OR instruction 2 26 12 8 Z zero extended Z flag use with instructions 13 16 zero extending data 2 12 zero overhead loop registers 4 6 zero overhead loops registers 4 22 setting up 7 1...

Страница 1042: ...Index I 40 ADSP BF53x BF56x Blackfin Processor Programming Reference...

Отзывы: