Perception Tool Kit (PTK) API Guide
C6xSimulator.h
Go to the documentation of this file.
1 /****************************************************************************/
2 /* C6xSimulator.h */
3 /* Copyright (c) 1997-2005 Texas Instruments Incorporated */
4 /****************************************************************************/
5 
6 /*
7  * Header file which defines the prototypes for the intrinsics.
8  *
9  */
10 
11 /****************************************************************************/
12 /* compiler directive to ensure only one copy of C6xSimulator.h gets */
13 /* included */
14 #ifndef C6XSIMULATOR_H
15 #define C6XSIMULATOR_H
16 
17 /****************************************************************************/
18 /* the includes */
20 
21 /* This part of the header file is relevant only in host environment */
22 #ifndef _TMS320C6X
23 
24 /* check to ensure that the target DSP is defined */
25 #if !defined(TMS320C62X) \
26  && !defined(TMS320C64X) \
27  && !defined(TMS320C64PX) \
28  && !defined(TMS320C67X) \
29  && !defined(TMS320C66X)
30 #error "TMS320C62X, TMS320C64X, TMS320C64PX, TMS320C67X, or TMS320C66X (i.e. the target DSP) must be defined."
31 #endif
32 
33 
34 /****************************************************************************/
35 /* the typedefs */
36 
37 #ifdef TMS320C64X
38 #define TMS320C62X
39 #endif // TMS320C64X
40 
41 #ifdef TMS320C64PX
42 #define TMS320C62X
43 #define TMS320C64X
44 #endif // TMS320C64PX
45 
46 #ifdef TMS320C67X
47 #define TMS320C62X
48 #endif // TMS320C67X
49 
50 #ifdef TMS320C66X
51 #define TMS320C62X
52 #define TMS320C64X
53 #define TMS320C64PX
54 #define TMS320C67X
55 #endif // TMS320C66X
56 
57 
58 /* memory intrinsics */
59 #ifdef TMS320C62X
60 #define _amem2(ptr) (*((uint16 *) (ptr)))
61 #define _amem2_const(ptr) (*((const uint16 *) (ptr)))
62 #define _amem4(ptr) (*((uint32 *) (ptr)))
63 #define _amem4_const(ptr) (*((const uint32 *) (ptr)))
64 /*
65 Change _amemd8 and _amemd8_const from these macros ...
66 #define _amemd8(ptr) (*((int64_d *) (ptr)))
67 #define _amemd8_const(ptr) (*((const int64_d *) (ptr)))
68 to macros which invoke helper functions, so the helper functions can emit
69 messages about how these intrinsics are deprecated.
70 */
71 #define _amemd8(ptr) (*_amemd8_helper((void *) ptr))
72 int64_d *_amemd8_helper(void *);
73 #define _amemd8_const(ptr) (*_amemd8_const_helper((void *) ptr))
74 const int64_d *_amemd8_const_helper(void *);
75 #endif // TMS320C62X
76 
77 #ifdef TMS320C64X
78 #define _amem8(ptr) (*((int64_ll *) (ptr)))
79 #define _amem8_const(ptr) (*((const int64_ll *) (ptr)))
80 #define _amem8_f2(ptr) (*((__float2_t *) (ptr)))
81 #define _amem8_f2_const(ptr) (*((const __float2_t *) (ptr)))
82 
83 #define _mem2(ptr) (*((uint16 *) (ptr)))
84 #define _mem2_const(ptr) (*((const uint16 *) (ptr)))
85 #define _mem4(ptr) (*((uint32 *) (ptr)))
86 #define _mem4_const(ptr) (*((const uint32 *) (ptr)))
87 #define _mem8(ptr) (*((int64_ll *) (ptr)))
88 #define _mem8_const(ptr) (*((const int64_ll *) (ptr)))
89 #define _mem8_f2(ptr) (*((__float2_t *) (ptr)))
90 #define _mem8_f2_const(ptr) (*((const __float2_t *) (ptr)))
91 /*
92 This change is just like the one for _amemd8 etc. above
93 #define _memd8(ptr) (*((int64_d *) (ptr)))
94 #define _memd8_const(ptr) (*((const int64_d *) (ptr)))
95 */
96 #define _memd8(ptr) (*_memd8_helper((void *) ptr))
97 int64_d *_memd8_helper(void *);
98 #define _memd8_const(ptr) (*_memd8_const_helper((void *) ptr))
99 const int64_d *_memd8_const_helper(void *);
100 #endif // TMS320C64X
101 
102 /* pseudo-operations */
103 #ifdef TMS320C64X
104 #define _cmplt2(a, b) _cmpgt2(b, a)
105 #define _cmpltu4(a, b) _cmpgtu4(b, a)
106 #define _dotpnrus2(a, b) _dotpnrsu2(b, a)
107 #define _dotprus2(a, b) _dotprsu2(b, a)
108 #define _dotpus4(a, b) _dotpsu4(b, a)
109 #define _mpyih(a, b) _mpyhi(b, a)
110 #define _mpyihr(a, b) _mpyhir(b, a)
111 #define _mpyil(a, b) _mpyli(b, a)
112 #define _mpyilr(a, b) _mpylir(b, a)
113 #define _mpyus4(a, b) _mpysu4(b, a)
114 #define _saddsu2(a, b) _saddus2(b, a)
115 #define _swap2(a) _packlh2(a, a)
116 #endif // TMS320C64X
117 
118 
119 
120 /****************************************************************************/
121 /* the typedefs */
122 
123 
124 /****************************************************************************/
125 /* the globals */
126 
127 
128 /****************************************************************************/
129 /* function prototypes for the TMS320C6X DSP */
130 
131 #ifdef TMS320C62X
132 
133 int32 _abs(int32 a);
134 int32 _add2(int32 a, int32 b);
135 uint32 _clr(uint32 a, uint32 b, uint32 c);
136 uint32 _clrr(uint32 a, int32 b);
137 int40 _dtol(uint64_d a);
138 int40 _f2tol(__float2_t a);
139 int32 _ext(int32 a, uint32 b, uint32 c);
140 int32 _extr(int32 a, int32 b);
141 uint32 _extu(uint32 a, uint32 b, uint32 c);
142 uint32 _extur(uint32 a, int32 b);
143 uint32 _ftoi(float32 a);
144 uint32 _hi(uint64_d a);
145 uint32 _hill(int64_ll a);
146 uint64_d _itod(uint32 a, uint32 b);
147 double64 _ftod(float32 a, float32 b); // Added in v7.2.x compiler
148 __float2_t _ftof2(float32 a, float32 b); // Added in v7.2.x compiler
149 float32 _itof(uint32 a);
150 /* Fix for BZ 1679. Return type must be *signed* 64-bit long to match */
151 /* c6x.h */
152 int64_ll _itoll(uint32 a, uint32 b);
153 int40 _labs(int40 a);
154 uint32 _lmbd(uint32 a, uint32 b);
155 uint32 _lnorm(int40 a);
156 uint32 _lo(uint64_d a);
157 int40 _lsadd(int32 a, int40 b);
158 int40 _lssub(int32 a, int40 b);
159 uint32 _loll(int64_ll a);
160 uint64_d _ltod(int40 a);
161 __float2_t _ltof2(int40 a);
162 int32 _mpy(int32 a, int32 b);
163 int32 _mpyh(int32 a, int32 b);
164 int32 _mpyhsu(int32 a, uint32 b);
165 uint32 _mpyhu(uint32 a, uint32 b);
166 int32 _mpyhus(uint32 a, int32 b);
167 int32 _mpyhl(int32 a, int32 b);
168 uint32 _mpyhlu(uint32 a, uint32 b);
169 int32 _mpyhslu(int32 a, uint32 b);
170 int32 _mpyhuls(uint32 a, int32 b);
171 int32 _mpylh(int32 a, int32 b);
172 uint32 _mpylhu(uint32 a, uint32 b);
173 int32 _mpylshu(int32 a, uint32 b);
174 int32 _mpyluhs(uint32 a, int32 b);
175 int32 _mpysu(int32 a, uint32 b);
176 uint32 _mpyu(uint32 a, uint32 b);
177 int32 _mpyus(uint32 a, int32 b);
178 uint32 _norm(int32 a);
179 int32 _sadd(int32 a, int32 b);
180 int32 _sat(int40 a);
181 uint32 _set(uint32 a, uint32 b, uint32 c);
182 uint32 _setr(uint32 a, int32 b);
183 int32 _smpy(int32 a, int32 b);
184 int32 _smpyh(int32 a, int32 b);
185 int32 _smpyhl(int32 a, int32 b);
186 int32 _smpylh(int32 a, int32 b);
187 int32 _sshl(int32 a, uint32 b);
188 int32 _ssub(int32 a, int32 b);
189 int32 _sub2(int32 a, int32 b);
190 uint32 _subc(uint32 a, uint32 b);
191 
192 #endif // TMS320C62X
193 
194 
195 /****************************************************************************/
196 /* additional function prototypes for the TMS320C64X DSP */
197 
198 #ifdef TMS320C64X
199 
200 int32 _abs2(int32 a);
201 int32 _add4(int32 a, int32 b);
202 int32 _avg2(int32 a, int32 b);
203 uint32 _avgu4(uint32 a, uint32 b);
204 uint32 _bitc4(uint32 a);
205 uint32 _bitr(uint32 a);
206 int32 _cmpeq2(int32 a, int32 b);
207 int32 _cmpeq4(int32 a, int32 b);
208 int32 _cmpgt2(int32 a, int32 b);
209 uint32 _cmpgtu4(uint32 a, uint32 b);
210 uint32 _deal(uint32 a);
211 int32 _dotp2(int32 a, int32 b);
212 int32 _dotpn2(int32 a, int32 b);
213 int32 _dotpnrsu2(int32 a, uint32 b);
214 int32 _dotprsu2(int32 a, uint32 b);
215 int32 _dotpsu4(int32 a, uint32 b);
216 uint32 _dotpu4(uint32 a, uint32 b);
217 int32 _gmpy4(int32 a, int32 b);
218 int40 _ldotp2(int32 a, int32 b);
219 int32 _max2(int32 a, int32 b);
220 uint32 _maxu4(uint32 a, uint32 b);
221 int32 _min2(int32 a, int32 b);
222 uint32 _minu4(uint32 a, uint32 b);
223 uint64_d _mpy2(int32 a, int32 b);
224 int64_ll _mpy2ll(int32 a, int32 b);
225 uint64_d _mpyhi(int32 a, int32 b);
226 int64_ll _mpyhill(int32 a, int32 b);
227 int32 _mpyhir(int32 a, int32 b);
228 uint64_d _mpyli(int32 a, int32 b);
229 int64_ll _mpylill(int32 a, int32 b);
230 int32 _mpylir(int32 a, int32 b);
231 uint64_d _mpysu4(int32 a, uint32 b);
232 int64_ll _mpysu4ll(int32 a, uint32 b);
233 uint64_d _mpyu4(uint32 a, uint32 b);
234 int64_ll _mpyu4ll(uint32 a, uint32 b);
235 int32 _mvd(int32 a);
236 uint32 _pack2(uint32 a, uint32 b);
237 uint32 _packh2(uint32 a, uint32 b);
238 uint32 _packh4(uint32 a, uint32 b);
239 uint32 _packhl2(uint32 a, uint32 b);
240 uint32 _packl4(uint32 a, uint32 b);
241 uint32 _packlh2(uint32 a, uint32 b);
242 
243 /* MSVC defines its own _rotl operation. This re-definition effectively */
244 /* disables that rotl. That's OK with the vast majority of MSVC users. */
245 /* Note the type of the second argument is signed int. That matches how */
246 /* MSVC prototypes _rotl in stdlib.h. That change silences a useless */
247 /* MSVC warning. */
248 #ifdef _MSC_VER
249 #define _rotl _ti_rotl
250 uint32 _rotl(uint32 a, int32 b);
251 #else
252 uint32 _rotl(uint32 a, uint32 b);
253 #endif
254 
255 int32 _sadd2(int32 a, int32 b);
256 uint32 _saddu4(uint32 a, uint32 b);
257 int32 _saddus2(uint32 a, int32 b);
258 uint32 _shfl(uint32 a);
259 uint32 _shlmb(uint32 a, uint32 b);
260 int32 _shr2(int32 a, uint32 b);
261 uint32 _shrmb(uint32 a, uint32 b);
262 uint32 _shru2(uint32 a, uint32 b);
263 uint64_d _smpy2(int32 a, int32 b);
264 int64_ll _smpy2ll(int32 a, int32 b);
265 int32 _spack2(int32 a, int32 b);
266 uint32 _spacku4(int32 a, int32 b);
267 int32 _sshvl(int32 a, int32 b);
268 int32 _sshvr(int32 a, int32 b);
269 int32 _sub4(int32 a, int32 b);
270 int32 _subabs4(int32 a, int32 b);
271 uint32 _swap4(uint32 a);
272 uint32 _unpkhu4(uint32 a);
273 uint32 _unpklu4(uint32 a);
274 uint32 _xpnd2(uint32 a);
275 uint32 _xpnd4(uint32 a);
276 
277 #endif // TMS320C64X
278 
279 
280 /****************************************************************************/
281 /* additional function prototypes for the TMS320C64+X DSP */
282 
283 #ifdef TMS320C64PX
284 
285 int64_ll _addsub(int32 a, int32 b);
286 int64_ll _addsub2(uint32 a, uint32 b);
287 int64_ll _cmpy(uint32 a, uint32 b);
288 uint32 _cmpyr(uint32 a, uint32 b);
289 uint32 _cmpyr1(uint32 a, uint32 b);
290 int64_ll _ddotp4(uint32 a, uint32 b);
291 int64_ll _ddotph2(int64_ll a, uint32 b);
292 uint32 _ddotph2r(int64_ll a, uint32 b);
293 int64_ll _ddotpl2(int64_ll a, uint32 b);
294 uint32 _ddotpl2r(int64_ll a, uint32 b);
295 int64_ll _dmv(uint32 a, uint32 b);
296 double64 _fdmv(float32 a, float32 b);
297 __float2_t _fdmv_f2(float32 a, float32 b);
298 int64_ll _dpack2(uint32 a, uint32 b);
299 int64_ll _dpackx2(uint32 a, uint32 b);
300 uint32 _gmpy(uint32 a, uint32 b);
301 int64_ll _mpy2ir(uint32 a, int32 b);
302 int32 _mpy32(int32 a, int32 b);
303 int64_ll _mpy32ll(int32 a, int32 b);
304 int64_ll _mpy32su(int32 a, uint32 b);
305 int64_ll _mpy32u(uint32 a, uint32 b);
306 int64_ll _mpy32us(uint32 a, int32 b);
307 uint32 _rpack2(int32 a, int32 b);
308 int64_ll _saddsub(int32 a, int32 b);
309 int64_ll _saddsub2(uint32 a, uint32 b);
310 int64_ll _shfl3(uint32 a, uint32 b);
311 int32 _smpy32(int32 a, int32 b);
312 int32 _ssub2(int32 a, int32 b);
313 uint32 _xormpy(uint32 a, uint32 b);
314 
315 #endif // TMS320C64PX
316 
317 
318 /****************************************************************************/
319 /* function prototypes for the TMS320C67X DSP */
320 
321 #ifdef TMS320C67X
322 double64 _fabs(double64 a);
323 float32 _fabsf(float32 a);
324 #endif // TMS320C67X
325 
326 #if defined(TMS320C66X) || defined(TMS320C67X)
327 #include "c66_data_sim.h"
328 #include "c66_conversion_macros.h"
329 #include "c66_ag_intrins.h"
330 #endif
331 
332 #ifdef TMS320C66X
333 __float2_t _complex_mpysp(__float2_t a, __float2_t b);
334 __float2_t _complex_conjugate_mpysp(__float2_t a, __float2_t b);
335 double64 _fdmvd(float32 a, float32 b);
336 __float2_t _fdmvd_f2(float32 a, float32 b);
337 #endif
338 
339 #else // Using TI C6000 Compiler
340 
341 #ifndef __FLOAT2_DEFINES__
342 #define __FLOAT2_DEFINES__
343 
344 typedef double __float2_t;
345 
346 #define _lltof2 _lltod
347 #define _f2toll _dtoll
348 #define _hif2_128 _hid128
349 #define _lof2_128 _lod128
350 #define _ftof2 _ftod
351 #define _hif2 _hif
352 #define _lof2 _lof
353 #define _fdmv_f2 _fdmv
354 #define _fdmvd_f2 _fdmvd
355 #define _f2to128 _dto128
356 #define _f2tol _dtol
357 #define _ltof2 _ltod
358 
359 #define _amem8_f2 _amemd8
360 #define _amem8_f2_const _amemd8_const
361 #define _mem8_f2 _memd8
362 #define _mem8_f2_const _memd8_const
363 
364 #endif // #ifndef __FLOAT2_DEFINES__
365 
366 #endif // #ifndef _TMS320C6X
367 
368 #endif // C6XSIMULATOR_H
369 
370 /*
371  * Automated Revision Information
372  * Changed: $Date: 2011-02-24 14:19:54 -0600 (Thu, 24 Feb 2011) $
373  * Revision: $Revision: 10006 $
374  */
375 
376 /*
377 
378 C6000 Host Intrinsics Software License Agreement
379 
380 
381 IMPORTANT - PLEASE READ THE FOLLOWING LICENSE AGREEMENT CAREFULLY.
382 THIS IS A LEGALLY BINDING AGREEMENT. AFTER YOU READ THIS LICENSE
383 AGREEMENT, YOU WILL BE ASKED WHETHER YOU ACCEPT AND AGREE TO THE
384 TERMS OF THIS LICENSE AGREEMENT. DO NOT CLICK "I HAVE READ AND AGREE"
385 UNLESS: (1) YOU ARE AUTHORIZED TO ACCEPT AND AGREE TO THE TERMS OF THIS
386 LICENSE AGREEMENT ON BEHALF OF YOURSELF AND YOUR COMPANY; AND (2) YOU
387 INTEND TO ENTER INTO AND TO BE BOUND BY THE TERMS OF THIS LEGALLY
388 BINDING AGREEMENT ON BEHALF OF YOURSELF AND YOUR COMPANY.
389 
390 
391 Important - Read carefully: This C6000 Host Intrinsics Software License
392 Agreement ("Agreement") is a legal agreement between you (either an
393 individual or entity) and Texas Instruments Incorporated ("TI"). The
394 "Licensed Materials" subject to this Agreement include the software
395 programs that TI has granted you access to download with this Agreement
396 and any "on-line" or electronic documentation associated with these
397 programs, or any portion thereof, as well as any updates or upgrades to such
398 software programs and documentation, if any, or any portion thereof,
399 provided to you in TI's sole discretion. By installing, copying or otherwise
400 using the Licensed Materials you agree to abide by the following provisions.
401 This Agreement is displayed for you to read prior to using the Licensed
402 Materials. If you choose not to accept or agree with these provisions, do not
403 download or install the Licensed Materials.
404 
405 1. License Grant and Use Restrictions.
406 
407 a. License Grant. Subject to the terms of this Agreement, TI hereby
408 grants to you under all TI intellectual property rights embodied in the
409 Licensed Materials a limited, non-exclusive, non-transferable, non-
410 assignable, fully paid-up, royalty-free, non-sublicensable license only to
411 (i) use the Licensed Materials solely for the purposes of evaluating,
412 testing, debugging and optimizing applications ("Target Applications")
413 that execute solely and exclusively on processing devices manufactured
414 by or for TI ("TI Devices"), and (ii) make a reasonable number of copies
415 necessary to exercise the right granted to you in Section 1(a)(i) above.
416 Use of any software applications optimized or developed using the
417 Licensed Materials on processing devices manufactured by or for an
418 entity other than TI is a material breach of this Agreement. It is also a
419 material breach of this license to use the Licensed Materials to assist in
420 the design, development or verification of a device that is instruction set
421 compatible with, or functionally equivalent to, a TI processing device.
422 
423 b. Contractors and Suppliers. The licenses granted to you hereunder
424 shall include your on-site and off-site suppliers and independent
425 contractors, while such suppliers and independent contractors are
426 performing work for or providing services to you, provided that such
427 suppliers and independent contractors have executed work-for-hire
428 agreements with you containing terms and conditions not inconsistent
429 with the terms and conditions set forth in this Agreement, and provided
430 further that you agree you are responsible for the breach of this
431 Agreement by any of your suppliers or contractors to the same extent
432 that you would be if you breached the Agreement yourself.
433 
434 c. No Distribution License. NOTWITHSTANDING ANYTHING TO THE
435 CONTRARY, THIS AGREEMENT DOES NOT CONVEY ANY
436 LICENSE TO DISTRIBUTE THE LICENSED MATERIALS TO ANY
437 THIRD PARTY. YOU ARE REQUIRED TO EXECUTE A SEPARATE
438 LICENSE AGREEMENT WITH TI BEFORE DISTRIBUTING THE
439 LICENSED MATERIALS OR ANY PRODUCTS THAT CONTAIN THE
440 LICENSED MATERIALS, OR ANY DERIVATIVE THEREOF.
441 
442  d. Limited License to TI and Covenant not to Sue. Continuing for the
443 term of this Agreement, you hereby grant to TI under any of your
444 patents embodied in the Licensed Materials a non-transferable, non-
445 exclusive, non-assignable, worldwide, fully paid-up, royalty-free license
446 to make, use, sell, offer to sell, import, export and otherwise distribute
447 such Licensed Materials. You covenant not to sue or otherwise assert
448 Derived Patents against TI and TI's affiliates and their licensees of the
449 Licensed Materials. In the event you assign a Derived Patent, you shall
450 require as a condition of any such assignment that the assignee agree
451 to be bound by the provisions in this Section 1(d) with respect to such
452 Derived Patent. Any attempted assignment or transfer in violation of
453 this Section 1(d) shall be null and void. For purposes of this Agreement,
454 "Derived Patents" means any of your patents issuing from a patent
455 application that discloses and claims an invention conceived of by you
456 after delivery of the Licensed Materials, and derived by you from your
457 access to the Licensed Materials.
458 
459  e. No Other License. Notwithstanding anything to the contrary, nothing
460 in this Agreement shall be construed as a license to any intellectual
461 property rights of TI other than those rights embodied in the Licensed
462 Materials provided to you by TI. EXCEPT AS PROVIDED HEREIN, NO
463 OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
464 OTHERWISE, TO ANY OTHER TI INTELLECTUAL PROPERTY
465 RIGHTS IS GRANTED HEREIN.
466 
467  f. Restrictions.
468 
469 i. You shall not disclose or distribute the source code versions of
470 the Licensed Materials, or any derivative thereof, to any person
471 other than your employees and contractors whose job
472 performance requires access.
473 
474 ii. Use of any software application optimized or developed using
475 the Licensed Materials on processing devices manufactured by
476 or for an entity other than TI is a material breach of this
477 Agreement. Use of the Licensed Materials to assist in the
478 design, development or verification of a device not manufactured
479 by or for TI is a material breach of this Agreement. Use of the
480 Licensed Materials to evaluate, test, debug and optimize
481 applications for use with processing devices other than those
482 manufactured by or for TI is a material breach of this Agreement.
483 
484 iii. Other than as expressly set forth in this Section 1(f)(iii) and in
485 Section 1(a) above, you may not otherwise copy or reproduce
486 the Licensed Materials.
487 
488 iv. You will not sublicense, transfer or assign the Licensed Materials
489 or your rights under this Agreement to any third party.
490 
491 v. You may use the Licensed Materials with Open Source Software
492 (as defined below) or with software developed using Open
493 Source Software (e.g. tools) provided you do not incorporate,
494 combine or distribute the Licensed Materials in a manner that
495 subjects the Licensed Materials, or any derivatives thereof, to
496 any license obligations or any other intellectual property related
497 terms of such Open Source Software. "Open Source Software"
498 means any software licensed under terms requiring that (A) other
499 software ("Proprietary Software") incorporated, combined or
500 distributed with such software or developed using such software:
501 (i) be disclosed or distributed in source code form; or (ii)
502 otherwise be licensed on terms inconsistent with the terms of this
503 Agreement, including but not limited to permitting use of the
504 Proprietary Software on or with devices other than TI Devices, or
505 (B) the owner of Proprietary Software license any of its patents
506 to users of the Open Source Software and/or Proprietary
507 Software incorporated, combined or distributed with such Open
508 Source Software or developed using such Open Source
509 Software.
510 
511  g. Termination. This Agreement is effective until terminated. You may
512 terminate this Agreement at any time by written notice to TI. Without
513 prejudice to any other rights, if you fail to comply with the terms of this
514 Agreement, TI may terminate your right to use the Licensed Materials,
515 or any derivative thereof, and any applications generated using the
516 Licensed Materials, or any derivative thereof, upon written notice to you.
517 Upon expiration or termination of this Agreement, you will destroy any
518 and all copies of the Licensed Materials, including any derivatives
519 thereof, in your possession, custody or control and provide to TI a
520 written statement signed by your authorized representative certifying
521 such destruction. Except for Sections 1(a) and 1(b) and the limited
522 license to TI set forth in Section 1(d), all provisions of this Agreement
523 shall survive expiration or termination of the Agreement.
524 
525 2. Licensed Materials Ownership. The Licensed Materials are licensed,
526 not sold to you, and can only be used in accordance with the terms of
527 this Agreement. Subject to the licenses granted to you pursuant to this
528 Agreement, TI and TI's licensors own and shall continue to own all right,
529 title and interest in and to the Licensed Materials, including all copies
530 thereof. The parties agree that all fixes, modifications and
531 improvements to the Licensed Materials conceived of or made by TI
532 that are based, either in whole or in part, on your feedback, suggestions
533 or recommendations are the exclusive property of TI and all right, title
534 and interest in and to such fixes, modifications or improvements to the
535 Licensed Materials will vest solely in TI. You acknowledge and agree
536 that regardless of the changes made to the Licensed Materials, your
537 right to use any and all derivatives of the Licensed Materials shall
538 remain subject to the terms and conditions of this Agreement.
539 Moreover, you acknowledge and agree that when your independently
540 developed software or hardware components are combined, in whole or
541 in part, with the Licensed Materials, or any derivative thereof, your right
542 to use the Licensed Materials, or any derivative thereof, embodied in
543 such resulting combined work shall remain subject to the terms and
544 conditions of this Agreement.
545 
546 3. Intellectual Property Rights.
547 
548  a. The Licensed Materials contain copyrighted material, trade secrets
549 and other proprietary information of TI and its licensors and are
550 protected by copyright laws, international copyright treaties and trade
551 secret laws, as well as other intellectual property laws. To protect TI's
552 and its licensors' rights in the Licensed Materials, you agree, except as
553 specifically permitted by statute by a provision that cannot be waived by
554 contract, not to "unlock", decompile, reverse engineer, disassemble or
555 otherwise translate any portions of the Licensed Materials provided to
556 you in object code format only to a human-perceivable form nor to
557 permit any person or entity to do so. You shall not remove, erase, alter,
558 tamper, cover or obscure any confidentiality, trade secret, proprietary or
559 copyright notices, trade-marks, proprietary, patent or other identifying
560 marks or designs printed or stamped on, affixed to, or encoded or
561 recorded in any component of the Licensed Materials and you shall
562 reproduce and include in all copies of the Licensed Materials the
563 copyright notice(s) and proprietary legend(s) of TI and its licensors as
564 they appear in the Licensed Materials. TI reserves all rights not
565 specifically granted under this Agreement.
566 
567  b. Certain Licensed Materials may be based on industry recognized
568 standards or software programs published by industry recognized
569 standards bodies and certain third parties may claim to own patents,
570 copyrights and other intellectual property rights that cover
571 implementation of those standards. You acknowledge and agree that
572 this Agreement does not convey a license to any such third party
573 patents, copyrights and other intellectual property rights and that you
574 are solely responsible for any patent, copyright or other intellectual
575 property right claim that relates to your use or distribution of the
576 Licensed Materials, or your use or distribution of your products that
577 include or incorporate the Licensed Materials. Moreover, you
578 acknowledge that any fees or royalties paid to TI pursuant to this
579 Agreement, as applicable, do not include any fees or royalties that may
580 be payable to any third party based on such third party's interests in the
581 Licensed Materials or any intellectual property rights that cover
582 implementation of any industry recognized standard, any software
583 program published by any industry recognized standards bodies or any
584 other proprietary technology.
585 
586 4. Audit Right. At TI's request, and within thirty (30) days after receiving
587 written notice, you shall permit an independent auditor selected by TI to
588 have access, no more than once each calendar year (unless the
589 immediately preceding audit revealed a breach of this Agreement) and
590 during your regular business hours, to all of your equipment, records
591 and documents as may contain information bearing upon the use of the
592 Licensed Materials. You shall keep full, complete, clear and accurate
593 records with respect to product sales and distributions for a period
594 beginning with the then-current calendar year and going back three (3)
595 years.
596 
597 5. Confidential Information. You acknowledge and agree that the
598 Licensed Materials, and any derivative thereof, contain trade secrets
599 and other confidential information of TI and its licensors. You agree to
600 use the Licensed Materials, or any derivative thereof, solely within the
601 scope of the licenses set forth herein, to maintain the Licensed
602 Materials, or any derivative thereof, in strict confidence, to use at least
603 the same procedures and degree of care that you use to prevent
604 disclosure of your own confidential information of like importance but in
605 no instance less than reasonable care, and to prevent disclosure of the
606 Licensed Materials, or any derivative thereof, to any third party, except
607 as may be necessary and required in connection with your rights and
608 obligations hereunder. You agree to obtain executed confidentiality
609 agreements with your employees and contractors having access to the
610 Licensed Materials, or any derivative thereof, and to diligently take
611 steps to enforce such agreements in this respect. TI agrees that
612 industry standard employment agreements used in the normal course of
613 your business shall satisfy the requirements of this section. TI may
614 disclose your contact information to TI's applicable licensors.
615 
616 6. Warranties and Limitations. THE LICENSED MATERIALS ARE
617 PROVIDED "AS IS". TI MAKES NO WARRANTY OR
618 REPRESENTATION, EITHER EXPRESS, IMPLIED OR STATUTORY,
619 REGARDING THE LICENSED MATERIALS, INCLUDING BUT NOT
620 LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY
621 OR FITNESS FOR A PARTICULAR PURPOSE OR NON-
622 INFRINGEMENT OF ANY THIRD PARTY PATENTS, COPYRIGHTS,
623 TRADE SECRETS OR OTHER INTELLECTUAL PROPERTY RIGHTS.
624 YOU AGREE TO USE YOUR INDEPENDENT JUDGMENT IN
625 DEVELOPING YOUR PRODUCTS AND DERIVATIVES OF THE
626 LICENSED MATERIALS. NOTHING CONTAINED IN THIS
627 AGREEMENT WILL BE CONSTRUED AS A WARRANTY OR
628 REPRESENTATION BY TI TO MAINTAIN PRODUCTION OF ANY TI
629 SEMICONDUCTOR DEVICE OR OTHER HARDWARE OR
630 SOFTWARE WITH WHICH THE LICENSED MATERIALS MAY BE
631 USED.
632 
633 YOU ACKNOWLEDGE AND AGREE THAT THE LICENSED
634 MATERIALS MAY NOT BE INTENDED FOR PRODUCTION
635 APPLICATIONS AND MAY CONTAIN IRREGULARITIES AND
636 DEFECTS NOT FOUND IN PRODUCTION SOFTWARE.
637 FURTHERMORE, YOU ACKNOWLEDGE AND AGREE THAT THE
638 LICENSED MATERIALS HAVE NOT BEEN TESTED OR CERTIFIED
639 BY ANY GOVERNMENT AGENCY OR INDUSTRY REGULATORY
640 ORGANIZATION OR ANY OTHER THIRD PARTY ORGANIZATION.
641 YOU AGREE THAT PRIOR TO USING OR DISTRIBUTING ANY
642 COMMERCIAL PRODUCT OPTIMIZED OR DEVELOPED USING THE
643 LICENSED MATERIALS YOU WILL THOROUGHLY TEST THE
644 PRODUCT AND THE FUNCTIONALITY OF THAT PRODUCT AND BE
645 SOLELY RESPONSIBLE FOR ANY PROBLEMS OR FAILURES.
646 
647 IN NO EVENT SHALL TI, OR ANY APPLICABLE LICENSOR, BE
648 LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, PUNITIVE OR
649 CONSEQUENTIAL DAMAGES, HOWEVER CAUSED, ON ANY
650 THEORY OF LIABILITY, IN CONNECTION WITH OR ARISING OUT
651 OF THIS AGREEMENT OR THE USE OF THE LICENSED
652 MATERIALS, OR ANY DERIVATIVE THEREOF, REGARDLESS OF
653 WHETHER TI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
654 DAMAGES. EXCLUDED DAMAGES INCLUDE, BUT ARE NOT
655 LIMITED TO, COST OF REMOVAL OR REINSTALLATION, OUTSIDE
656 COMPUTER TIME, LABOR COSTS, LOSS OF DATA, LOSS OF
657 GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF
658 USE OR INTERRUPTION OF BUSINESS. IN NO EVENT WILL TI'S
659 AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING
660 OUT OF YOUR USE OF THE LICENSED MATERIALS, OR ANY
661 DERIVATIVE THEREOF, EXCEED THE GREATER OF FIVE
662 HUNDRED U.S. DOLLARS (US$500) OR THE FEES PAID TO TI BY
663 YOU FOR THE LICENSED MATERIALS UNDER THIS AGREEMENT.
664 
665  Because some jurisdictions do not allow the exclusion or limitation of
666 incidental or consequential damages or limitation on how long an
667 implied warranty lasts, the above limitations or exclusions may not apply
668 to you.
669 
670 7. Indemnification Disclaimer. YOU ACKNOWLEDGE AND AGREE
671 THAT TI SHALL NOT BE LIABLE FOR AND SHALL NOT DEFEND OR
672 INDEMNIFY YOU AGAINST ANY THIRD PARTY INFRINGEMENT
673 CLAIM THAT RELATES TO OR IS BASED ON YOUR
674 MANUFACTURE, USE OR DISTRIBUTION OF THE LICENSED
675 MATERIALS, OR ANY DERIVATIVE THEREOF, OR YOUR
676 MANUFACTURE, USE, OFFER FOR SALE, SALE, IMPORTATION OR
677 DISTRIBUTION OF YOUR PRODUCTS THAT INCLUDE OR
678 INCORPORATE THE LICENSED MATERIALS, OR ANY DERIVATIVE
679 THEREOF.
680 
681 8. No Technical Support. TI and TI's licensors are under no obligation to
682 install, maintain or support the Licensed Materials, or any derivatives
683 thereof.
684 
685 9. Notices. All notices to TI hereunder shall be delivered to Texas
686 Instruments Incorporated, 12500 TI Boulevard, Mail Station 8638,
687 Dallas, Texas 75243, Attention: Contracts Manager, with a copy to
688 Texas Instruments Incorporated, 13588 N. Central Expressway, Mail
689 Station 3999, Dallas, Texas 75243, Attention: Law Department - ASP.
690 All notices shall be deemed served when received by TI.
691 
692 10. Export Control. You hereby acknowledge that the Licensed Materials
693 are subject to export control under the U.S. Commerce Department's
694 Export Administration Regulations ("EAR"). You further hereby
695 acknowledge and agree that unless prior authorization is obtained from the
696 U.S. Commerce Department, neither you nor your customers will export,
697 re-export or release, directly or indirectly, any technology, software or
698 software source code (as defined in Part 772 of the EAR), received from
699 TI, or export, directly or indirectly, any direct product of such technology,
700 software or software source code (as defined in Part 734 of the EAR), to
701 any destination or country to which the export, re-export or release of the
702 technology, software or software source code, or direct product is
703 prohibited by the EAR. You agree that none of the Licensed Materials
704 may be downloaded or otherwise exported or reexported (i) into (or to a
705 national or resident of) Cuba, Iran, North Korea, Sudan and Syria or any
706 other country the U.S. has embargoed goods; or (ii) to anyone on the U.S.
707 Treasury Department's List of Specially Designated Nationals or the U.S.
708 Commerce Department's Denied Persons List or Entity List. You
709 represent and warrant that you are not located in, under the control of, or a
710 national or resident of any such country or on any such list and you will not
711 use or transfer the Licensed Materials for use in any sensitive nuclear,
712 chemical or biological weapons, or missile technology end-uses unless
713 authorized by the U.S. Government by regulation or specific license or for
714 a military end-use in, or by any military entity of Albania, Armenia,
715 Azerbaijan, Belarus, Cambodia, China, Georgia, Iraq, Kazakhstan,
716 Kyrgyzstan, Laos, Libya, Macau, Moldova, Mongolia, Russia, Tajikistan,
717 Turkmenistan, Ukraine, Uzbekistan and Vietnam. Any software export
718 classification made by TI shall be for TI's internal use only and shall not
719 be construed as a representation or warranty regarding the proper
720 export classification for such software or whether an export license or
721 other documentation is required for the exportation of such software.
722 
723 11. Governing Law and Severability. This Agreement will be governed by
724 and interpreted in accordance with the laws of the State of Texas,
725 without reference to conflict of laws principles. If for any reason a court
726 of competent jurisdiction finds any provision of the Agreement to be
727 unenforceable, that provision will be enforced to the maximum extent
728 possible to effectuate the intent of the parties, and the remainder of the
729 Agreement shall continue in full force and effect. This Agreement shall
730 not be governed by the United Nations Convention on Contracts for the
731 International Sale of Goods, or by the Uniform Computer Information
732 Transactions Act (UCITA). The parties agree that non-exclusive
733 jurisdiction for any dispute arising out of or relating to this Agreement
734 lies within the courts located in the State of Texas. Notwithstanding the
735 foregoing, any judgment may be enforced in any United States or
736 foreign court, and either party may seek injunctive relief in any United
737 States or foreign court.
738 
739 12. PRC Provisions. If you are located in the People's Republic of China
740 ("PRC") or if the Licensed Materials will be sent to the PRC, the
741 following provisions shall apply and shall supersede any other
742 provisions in this Agreement concerning the same subject matter:
743 
744  a. Registration Requirements. You shall be solely responsible for
745 performing all acts and obtaining all approvals that may be required in
746 connection with this Agreement by the government of the PRC,
747 including but not limited to registering pursuant to, and otherwise
748 complying with, the PRC Measures on the Administration of Software
749 Products, Management Regulations on Technology Import-Export, and
750 Technology Import and Export Contract Registration Management
751 Rules. Upon receipt of such approvals from the government authorities,
752 you shall forward evidence of all such approvals to TI for its records. In
753 the event that you fail to obtain any such approval or registration, you
754 shall be solely responsible for any and all losses, damages or costs
755 resulting therefrom, and shall indemnify TI for all such losses, damages
756 or costs.
757 
758 b. Governing Language. This Agreement is written and executed in
759 the English language. If a translation of this Agreement is required for
760 any purpose, including but not limited to registration of the Agreement
761 pursuant to any governmental laws, regulations or rules, you shall be
762 solely responsible for creating such translation. Any translation of this
763 Agreement into a language other than English is intended solely in order
764 to comply with such laws or for reference purposes, and the English
765 language version shall be authoritative and controlling.
766 
767 c. Export Control.
768 
769 i. Diversions of Technology. You hereby agree that unless
770 prior authorization is obtained from the U.S. Department of
771 Commerce, neither you nor your subsidiaries or affiliates shall
772 knowingly export, re-export or release, directly or indirectly, any
773 technology, software or software source code (as defined in Part
774 772 of the Export Administration Regulations of the U.S.
775 Department of Commerce ("EAR")), received from TI or any of its
776 affiliated companies, or export, directly or indirectly, any direct
777 product of such technology, software or software source code (as
778 defined in Part 734 of the EAR), to any destination or country to
779 which the export, re-export or release of the technology, software,
780 software source code or direct product is prohibited by the EAR.
781 
782 ii. Assurance of Compliance. You understand and
783 acknowledge that products, technology (regardless of the form in
784 which it is provided), software or software source code, received
785 from TI or any of its affiliates under this Agreement may be under
786 export control of the United States or other countries. You shall
787 comply with the United States and other applicable non-U.S. laws
788 and regulations governing the export, re-export and release of any
789 products, technology, software or software source code received
790 under this Agreement from TI or its affiliates. You shall not
791 undertake any action that is prohibited by the EAR. Without
792 limiting the generality of the foregoing, you specifically agree that
793 you shall not transfer or release products, technology, software or
794 software source code of TI or its affiliates to, or for use by, military
795 end users or for use in military, missile, nuclear, biological or
796 chemical weapons end uses.
797 
798 iii. Licenses. Each party shall secure at its own expense, such
799 licenses and export and import documents as are necessary for
800 each respective party to fulfill its obligations under this Agreement.
801 If such licenses or government approvals cannot be obtained, TI
802 may terminate this Agreement, or shall otherwise be excused from
803 the performance of any obligations it may have under this
804 Agreement for which the licenses or government approvals are
805 required.
806 
807 13. Contingencies. TI shall not be in breach of this Agreement and shall
808 not be liable for any non-performance or delay in performance if such
809 non-performance or delay is due to a force majeure event or other
810 circumstances beyond TI's reasonable control, including but not limited
811 to, shortages of labor, energy, fuel, machinery or materials, technical or
812 yield failures, war, civil unrest, any government act, law or regulation,
813 including any judicial order or decree, any communication or power
814 failure, labor dispute, natural disaster, fire, flood, earthquake, explosion,
815 terrorist act or Act of God.
816 
817 14. Entire Agreement. This is the entire Agreement between you and TI
818 and this Agreement supersedes any prior agreement between the
819 parties related to the subject matter of this Agreement. No amendment
820 or modification of this Agreement will be effective unless in writing and
821 signed by a duly authorized representative of TI. You hereby warrant
822 and represent that you have obtained all authorizations and other
823 applicable consents required empowering you to enter into this
824 Agreement.
825 
826 
827 
828 
829 
830 Page 1
831 
832 */
833 
long long int64_d
Definition: C6xSimulator_base_types.h:43
unsigned long long uint64_d
Definition: C6xSimulator_base_types.h:47
long long int64_ll
Definition: C6xSimulator_base_types.h:44
long long int40
Definition: C6xSimulator_base_types.h:42
Definition: C6xSimulator_base_types.h:66
float float32
Definition: C6xSimulator_base_types.h:28
int int32
Definition: C6xSimulator_base_types.h:22
double double64
Definition: C6xSimulator_base_types.h:49
unsigned int uint32
Definition: C6xSimulator_base_types.h:26