Sign In
Upload
Manuals
Brands
Infineon Manuals
Microcontrollers
TriCore TC1.6E
Infineon TriCore TC1.6E Manuals
Manuals and User Guides for Infineon TriCore TC1.6E. We have
1
Infineon TriCore TC1.6E manual available for free PDF download: User Manual
Infineon TriCore TC1.6E User Manual (485 pages)
Instruction Set 32-bit Unified Processor Core
Brand:
Infineon
| Category:
Microcontrollers
| Size: 5.94 MB
Table of Contents
Table of Contents
5
Preface
6
Bit Type Abbreviations
7
Text Conventions
7
Instruction Syntax
8
Operand Definitions
8
Instruction Mnemonic
8
Instruction Set Information
8
Implicit Operand Definitions
9
Operation Modifiers
9
16-Bit Opcode Formats
10
Data Type Modifiers
10
32-Bit Opcode Formats
11
Opcode Field Definitions
12
RTL Syntax
13
Instruction Operation Syntax
13
RTL Functions
15
Cache RTL Functions
16
Floating Point Operation Syntax
18
Coprocessor Instructions
20
List of os and I/O Privileged Instructions
21
PSW Status Flags (User Status Bits)
21
Integer Arithmetic
23
Move
23
Addition and Subtraction
23
Instruction Set Overview
23
Min, Max, Saturate/Conditional Arithmetic Instructions
24
Absolute Value, Absolute Difference
24
Division
24
Multiply and Multiply-Add
24
Count Leading Zeros, Ones and Signs
25
Logical
25
Bit-Field Extract and Insert
26
Shift
26
Dextr
27
EXTR Operation
27
EXTR.U Operation
27
Insert
28
Packed Half-Word Data Format
28
Packed Arithmetic
28
Packed Byte Data Format
29
DSP Arithmetic
30
PSW (Program Status Word) Status Flags and Arithmetic Instructions
30
Saturation
30
Usage
30
Guard Bits/Rounding
31
Overflow and Saturation
31
Sticky Advance Overflow and Block Scaling if FFT
31
Special Case: -1 * -1
31
Packed Multiply and Packed MAC
32
Simple Compare
33
Accumulating Compare
33
Equivalent Comparison Operations
33
Compare Instructions
33
Packed Compare
34
Compare with Shift
34
Simple Bit Operations
35
Shifting Bit Operations
36
Accumulating Bit Operations
36
Address Comparison
37
Address Arithmetic
37
Unconditional Branch
38
LT.A Comparison Operation
38
Branch Instructions
38
Conditional Jumps on Data Registers
39
Conditional Jumps on Address Registers
39
Conditional Branch
39
Loop Instructions with Reduced Execution Overhead
40
Loop Instructions with Auto Incrementing/Decrementing Counter
40
Conditional Jumps on Bits
40
Loop Instructions
40
Load/Store Basic Data Types
41
Addressing Modes
41
Load and Store Instructions
41
Store Bit and Bit Field
42
Load Bit
42
Lower Context Saving and Restoring
43
Context Loading and Storing
43
Context Related Instructions
43
System Call
44
Synchronization Primitives (DYSNC and ISYNC)
44
System Instructions
44
Access to the Core Special Function Registers (Csfrs)
45
Enabling and Disabling the Interrupt System
45
Return (RET) and Return from Exception (RFE) Instructions
46
Trap Instructions
46
No-Operation (NOP)
46
Coprocessor (COP) Instructions/16-Bit Instructions
46
Instruction Set
48
CPU Instructions
48
Abs
49
Absolute Value
49
ABS.B - Absolute Value Packed Byte
50
ABS.H - Absolute Value Packed Half-Word
50
ABSDIF - Absolute Value of Difference
52
ABSDIF.B - Absolute Value of Difference Packed Byte
53
ABSDIF.H - Absolute Value of Difference Packed Half-Word
53
ABSDIFS - Absolute Value of Difference with Saturation
55
ABSDIFS.H - Absolute Value of Difference Packed Half-Word W Saturation
56
ABSS - Absolute Value with Saturation
57
ABSS.H - Absolute Value Packed Half-Word with Saturation
58
Add
59
ADD.A - Add Address
62
ADD.B - Add Packed Byte
63
ADD.H - Add Packed Half-Word
63
ADDC - Add with Carry
65
ADDI - Add Immediate
66
ADDIH - Add Immediate High
67
ADDIH.A - Add Immediate High to Address
68
ADDS - Add Signed with Saturation
69
ADDS.H - Add Signed Packed Half-Word with Saturation
71
ADDS.HU - Add Unsigned Packed Half-Word with Saturation
71
ADDS.U - Add Unsigned with Saturation
73
ADDSC.A - Add Scaled Index to Address
74
ADDSC.AT - Add Bit-Scaled Index to Address
74
ADDX - Add Extended
76
AND - Bitwise and
77
AND.AND.T - Accumulating Bit Logical AND-AND
79
AND.ANDN.T - Accumulating Bit Logical AND-AND-Not
79
AND.NOR.T - Accumulating Bit Logical AND-NOR
79
AND.OR.T - Accumulating Bit Logical AND-OR
79
AND.EQ - Equal Accumulating
81
AND.GE.U - Greater than or Equal Accumulating Unsigned
82
AND.GE - Greater than or Equal Accumulating
82
AND.LT - Less than Accumulating
84
AND.LT.U - Less than Accumulating Unsigned
84
AND.NE - Not Equal Accumulating
86
AND.T - Bit Logical and
87
ANDN - Bitwise AND-Not
88
ANDN.T - Bit Logical AND-Not
89
BISR - Begin Interrupt Service Routine
90
BMERGE - Bit Merge
92
BSPLIT - Bit Split
93
CACHEA.I - Cache Address, Invalidate
94
CACHEA.W - Cache Address, Writeback
96
CACHEA.WI - Cache Address, Writeback and Invalidate
98
CACHEI.W - Cache Index, Writeback
100
CACHEI.I - Cache Index, Invalidate
102
CACHEI.WI - Cache Index, Writeback, Invalidate
104
CADD - Conditional Add
106
CADDN - Conditional Add-Not
108
Call
110
CALLA - Call Absolute
112
CALLI - Call Indirect
113
CLO - Count Leading Ones
115
CLO.H - Count Leading Ones in Packed Half-Words
116
CLS - Count Leading Signs
117
CLS.H - Count Leading Signs in Packed Half-Words
118
CLZ - Count Leading Zeros
119
CLZ.H - Count Leading Zeros in Packed Half-Words
120
CMOV (16-Bit) - Conditional Move (16-Bit)
121
CMOVN (16-Bit) - Conditional Move-Not (16-Bit)
122
CMPSWAP.W - Compare and Swap
123
Crc32
125
CSUB - Conditional Subtract
126
CSUBN - Conditional Subtract-Not
127
Debug
128
DEXTR - Extract from Double Register
129
DISABLE - Disable Interrupts
130
DSYNC - Synchronize Data
131
DVADJ - Divide-Adjust
132
DIV - Divide
134
DIV.U - Divide Unsigned
134
DVINIT.HU - Divide-Initialization Half-Word Unsigned
136
DVINIT - Divide-Initialization Word
136
DVINIT.H - Divide-Initialization Half-Word
136
DVINIT.B - Divide-Initialization Byte
136
DVSTEP - Divide-Step
139
DVSTEP.U - Divide-Step Unsigned
139
Enable Interrupts
141
EQ - Equal
142
EQ.A - Equal to Address
144
EQ.B - Equal Packed Byte
145
EQ.H - Equal Packed Half-Word
145
EQ.W - Equal Packed Word
145
EQANY.B - Equal any Byte
147
EQANY.H - Equal any Half-Word
147
EQZ.A - Equal Zero Address
149
EXTR - Extract Bit Field
150
EXTR.U - Extract Bit Field Unsigned
150
FCALL - Fast Call
152
FCALLA - Fast Call Absolute
153
FCALLI - Fast Call Indirect
154
FRET - Return from Fast Call
155
GE - Greater than or Equal
156
GE.U - Greater than or Equal Unsigned
156
GE.A - Greater than or Equal Address
158
IMASK - Insert Mask
159
INS.T - Insert Bit
161
INSN.T - Insert Bit-Not
161
INSERT - Insert Bit Field
162
ISYNC - Synchronize Instructions
164
IXMAX - Find Maximum Index
165
IXMAX.U - Find Maximum Index (Unsigned)
165
IXMIN - Find Minimum Index
167
IXMIN.U - Find Minimum Index (Unsigned)
167
J - Jump Unconditional
169
JA - Jump Unconditional Absolute
170
JEQ - Jump if Equal
171
JEQ.A - Jump if Equal Address
173
JGE - Jump if Greater than or Equal
174
JGE.U - Jump if Greater than or Equal Unsigned
174
JGEZ (16-Bit) - Jump if Greater than or Equal to Zero (16-Bit)
176
JGTZ (16-Bit) - Jump if Greater than Zero (16-Bit)
177
JI - Jump Indirect
178
JL - Jump and Link
179
JLA - Jump and Link Absolute
180
JLEZ (16-Bit) - Jump if Less than or Equal to Zero (16-Bit)
181
JLI - Jump and Link Indirect
182
JLT - Jump if Less than
183
JLT.U - Jump if Less than Unsigned
183
JLTZ (16-Bit) - Jump if Less than Zero (16-Bit)
185
JNE - Jump if Not Equal
186
JNE.A - Jump if Not Equal Address
188
JNED - Jump if Not Equal and Decrement
189
JNEI - Jump if Not Equal and Increment
190
JNZ (16-Bit) - Jump if Not Equal to Zero (16-Bit)
191
JNZ.A - Jump if Not Equal to Zero Address
192
JNZ.T - Jump if Not Equal to Zero Bit
193
JZ (16-Bit) - Jump if Zero (16-Bit)
194
JZ.A - Jump if Zero Address
195
JZ.T - Jump if Zero Bit
196
LD.A - Load Word to Address Register
197
LD.B - Load Byte
200
LD.BU - Load Byte Unsigned
200
LD.D - Load Double-Word
204
LD.DA - Load Double-Word to Address Register
206
LD.H - Load Half-Word
208
LD.HU - Load Half-Word Unsigned
208
LD.Q - Load Half-Word Signed Fraction
212
LD.W - Load Word
214
LDLCX - Load Lower Context
217
LDMST - Load-Modify-Store
218
LDUCX - Load Upper Context
220
LEA - Load Effective Address
221
Loop
222
LOOPU - Loop Unconditional
223
LT - Less than
224
LT.U - Less than Unsigned
224
LT.A - Less than Address
226
LT.B - Less than Packed Byte
227
LT.BU - Less than Packed Byte Unsigned
227
LT.H - Less than Packed Half-Word
228
LT.HU - Less than Packed Half-Word Unsigned
228
LT.WU - Less than Packed Word Unsigned
229
LT.W - Less than Packed Word
229
MADD - Multiply-Add
230
MADDS - Multiply-Add, Saturated
230
MADD.H - Packed Multiply-Add Q Format
233
MADDS.H - Packed Multiply-Add Q Format, Saturated
233
MADD.Q - Multiply-Add Q Format
237
MADDS.Q - Multiply-Add Q Format, Saturated
237
MADD.U - Multiply-Add Unsigned
243
MADDS.U - Multiply-Add Unsigned, Saturated
243
MADDM.H - Packed Multiply-Add Q Format Multi-Precision
245
MADDMS.H - Packed Multiply-Add Q Format Multi-Precision, Saturated
245
MADDR.H - Packed Multiply-Add Q Format with Rounding
248
MADDRS.H - Packed Multiply-Add Q Format with Rounding, Saturated
248
MADDR.Q - Multiply-Add Q Format with Rounding
252
MADDRS.Q - Multiply-Add Q Format with Rounding, Saturated
252
MADDSU.H - Packed Multiply-Add/Subtract Q Format
254
MADDSUS.H - Packed Multiply-Add/Subtract Q Format Saturated
254
MADDSUM.H - Packed Multiply-Add/Subtract Q Format Multi-Precision
258
Packed Multiply-Add/Subtract Q Format Multi-Precision Saturated
258
MADDSUR.H - Packed Multiply-Add/Subtract Q Format with Rounding
261
Packed Multiply-Add/Subtract Q Format with Rounding Saturated
261
MAX - Maximum Value
265
MAX.U - Maximum Value Unsigned
265
MAX.B - Maximum Value Packed Byte
267
MAX.BU - Maximum Value Packed Byte Unsigned
267
MAX.H - Maximum Value Packed Half-Word
268
MAX.HU - Maximum Value Packed Half-Word Unsigned
268
MFCR - Move from Core Register
269
MIN - Minimum Value
270
MIN.U - Minimum Value Unsigned
270
MIN.B - Minimum Value Packed Byte
272
MIN.BU - Minimum Value Packed Byte Unsigned
272
MIN.H - Minimum Value Packed Half-Word
273
MIN.HU - Minimum Value Packed Half-Word Unsigned
273
MOV - Move
274
MOV.A - Move Value to Address Register
277
MOV.AA - Move Address from Address Register
278
MOV.D - Move Address to Data Register
279
MOV.U - Move Unsigned
280
MOVH - Move High
281
MOVH.A - Move High to Address
282
MSUB - Multiply-Subtract
283
MSUBS - Multiply-Subtract, Saturated
283
MSUB.H - Packed Multiply-Subtract Q Format
286
MSUBS.H - Packed Multiply-Subtract Q Format, Saturated
286
MSUB.Q - Multiply-Subtract Q Format
290
MSUBS.Q - Multiply-Subtract Q Format, Saturated
290
MSUB.U - Multiply-Subtract Unsigned
296
MSUBS.U - Multiply-Subtract Unsigned, Saturated
296
MSUBAD.H - Packed Multiply-Subtract/Add Q Format
298
MSUBADS.H - Packed Multiply-Subtract/Add Q Format, Saturated
298
MSUBADM.H - Packed Multiply-Subtract/Add Q Format-Multi-Precision
302
Packed Multiply-Subtract/Add Q Format-Multi-Precision, Saturated
302
Packed Multiply-Subtract/Add Q Format with Rounding, Saturated
305
MSUBADR.H - Packed Multiply-Subtract/Add Q Format with Rounding
305
MSUBM.H - Packed Multiply-Subtract Q Format-Multi-Precision
309
Packed Multiply-Subtract Q Format-Multi-Precision, Saturated
309
MSUBR.H - Packed Multiply-Subtract Q Format with Rounding
312
MSUBRS.H - Packed Multiply-Subtract Q Format with Rounding, Saturated
312
MSUBR.Q - Multiply-Subtract Q Format with Rounding
316
MSUBRS.Q - Multiply-Subtract Q Format with Rounding, Saturated
316
MTCR - Move to Core Register
318
MUL - Multiply
319
MULS - Multiply, Saturated
319
MUL.H - Packed Multiply Q Format
322
MUL.Q - Multiply Q Format
324
MULS.U - Multiply Unsigned, Saturated
327
MUL.U - Multiply Unsigned
327
MULM.H - Packed Multiply Q Format-Multi-Precision
329
MULMS.H - MULMS.H (DEPRECATED) (Note: Deprecated in TC2!)
331
MULR.H - Packed Multiply Q Format with Rounding
332
MULR.Q - Multiply Q Format with Rounding
334
NAND - Bitwise NAND
335
NAND.T - Bit Logical NAND
336
NE - Not Equal
337
NE.A - Not Equal Address
338
NEZ.A - Not Equal Zero Address
339
NOP - no Operation
340
NOR - Bitwise nor
341
NOR.T - Bit Logical nor
342
NOT (16-Bit) - Bitwise Complement NOT (16-Bit)
343
OR - Bitwise or
344
OR.AND.T - Accumulating Bit Logical OR-AND
346
OR.ANDN.T - Accumulating Bit Logical OR-AND-Not
346
OR.NOR.T - Accumulating Bit Logical OR-NOR
346
OR.OR.T - Accumulating Bit Logical OR-OR
346
OR.EQ - Equal Accumulating
348
OR.GE - Greater than or Equal Accumulating
349
OR.GE.U - Greater than or Equal Accumulating Unsigned
349
OR.LT - Less than Accumulating
351
OR.LT.U - Less than Accumulating Unsigned
351
OR.NE - Not Equal Accumulating
353
OR.T - Bit Logical or
354
ORN - Bitwise OR-Not
355
ORN.T - Bit Logical OR-Not
356
Pack
357
Parity
359
Restore
360
RET - Return from Call
361
RFE - Return from Exception
363
RFM - Return from Monitor
365
RSLCX - Restore Lower Context
366
RSTV - Reset Overflow Bits
367
RSUB - Reverse-Subtract
368
RSUBS - Reverse-Subtract with Saturation
369
RSUBS.U - Reverse-Subtract Unsigned with Saturation
369
SAT.B - Saturate Byte
370
SAT.BU - Saturate Byte Unsigned
371
SAT.H - Saturate Half-Word
372
SAT.HU - Saturate Half-Word Unsigned
373
SEL - Select
374
SELN - Select-Not
375
SH - Shift
376
SH.EQ - Shift Equal
378
SH.GE - Shift Greater than or Equal
379
SH.GE.U - Shift Greater than or Equal Unsigned
379
SH.H - Shift Packed Half-Words
381
SH.LT - Shift Less than
382
SH.LT.U - Shift Less than Unsigned
382
SH.NE - Shift Not Equal
384
SH.XOR.T - Accumulating Shift-XOR
385
SH.XNOR.T - Accumulating Shift-XNOR
385
SH.NAND.T - Accumulating Shift-NAND
385
SH.AND.T - Accumulating Shift-AND
385
SHA - Arithmetic Shift
387
SHA.H - Arithmetic Shift Packed Half-Words
389
SHAS - Arithmetic Shift with Saturation
391
ST.A - Store Word from Address Register
393
ST.B - Store Byte
396
ST.D - Store Double-Word
399
ST.DA - Store Double-Word from Address Registers
401
ST.H - Store Half-Word
403
ST.Q - Store Half-Word Signed Fraction
406
ST.T - Store Bit
408
ST.W - Store Word
409
STLCX - Store Lower Context
412
STUCX - Store Upper Context
413
SUB - Subtract
414
SUB.A - Subtract Address
416
SUB.B - Subtract Packed Byte
417
SUB.H - Subtract Packed Half-Word
417
SUBC - Subtract with Carry
419
SUBS - Subtract Signed with Saturation
420
SUBS.U - Subtract Unsigned with Saturation
420
SUBS.H - Subtract Packed Half-Word with Saturation
422
SUBS.HU - Subtract Packed Half-Word Unsigned with Saturation
422
SUBX - Subtract Extended
424
SVLCX - Save Lower Context
425
SWAP.W - Swap with Data Register
426
SWAPMSK.W - Swap under Mask
428
SYSCALL - System Call
430
TRAPSV - Trap on Sticky Overflow
431
TRAPV - Trap on Overflow
432
UNPACK - Unpack Floating Point
433
Wait
435
XNOR - Bitwise XNOR
436
XNOR.T - Bit Logical XNOR
437
XOR - Bitwise XOR
438
XOR.EQ - Equal Accumulating
439
XOR.GE - Greater than or Equal Accumulating
440
XOR.GE.U - Greater than or Equal Accumulating Unsigned
440
XOR.LT.U - Less than Accumulating Unsigned
442
XOR.LT - Less than Accumulating
442
XOR.NE - Not Equal Accumulating
444
XOR.T - Bit Logical XOR
445
FPU Instructions
446
ADD.F - Add Float
447
CMP.F - Compare Float
448
DIV.F - Divide Float
449
FTOI - Float to Integer
450
FTOIZ - Float to Integer, Round Towards Zero
451
FTOQ31 - Float to Fraction
452
FTOQ31Z - Float to Fraction, Round Towards Zero
453
FTOU - Float to Unsigned
454
FTOUZ - Float to Unsigned, Round Towards Zero
455
ITOF - Integer to Float
456
MADD.F - Multiply Add Float
457
MSUB.F - Multiply Subtract Float
459
MUL.F - Multiply Float
461
Q31TOF - Fraction to Floating-Point
462
QSEED.F - Inverse Square Root Seed
463
SUB.F - Subtract Float
464
UPDFL - Update Flags
465
UTOF - Unsigned to Floating-Point
466
LS and IP Instruction Summary Lists
467
List of IP Instructions
468
List of Instructions by Shortname
474
List of Instructions by Longname
478
Index
482
Advertisement
Advertisement
Related Products
Infineon TC2X5
Infineon TC2X4
Infineon TriCore TC1.6P
Infineon TriBoard TC1784
Infineon TriBoard TC176X
Infineon TriBoard TC116X
Infineon TriBoard TC1387
Infineon AURIX TC33xEXT
Infineon TLE984 QX Series
Infineon TLE985 Series
Infineon Categories
Motherboard
Microcontrollers
Computer Hardware
Control Unit
Controller
More Infineon Manuals
Login
Sign In
OR
Sign in with Facebook
Sign in with Google
Upload manual
Upload from disk
Upload from URL