source: proto/pabloj/branches/refactor-experimental/output/cpplang/idisa_definitions.hpp @ 3192

Last change on this file since 3192 was 3192, checked in by ksherdy, 6 years ago

Sweeping changes to sync branch with trunk.

File size: 2.0 KB
Line 
1// GENERATED CODE. DO NOT MODIFY.
2//
3// This template includes the minimal set of runtime support libraries required
4// to support compilation of PabloJ generated C++ code (bitblock.hpp, carryQ.hpp,
5// pabloSupport.hpp, error_tracker.hpp)
6//
7// (c) 2012, 2013 Robert D. Cameron, Ken Herdy
8// All rights reserved.
9// Licensed to International Characters, Inc. under Academic Free License 3.0
10//
11//////////////////////////////////////////////////////////////////////////////////////////
12// @ global - Stream structure and stream function declarations.
13//
14//////////////////////////////////////////////////////////////////////////////////////////
15//
16#ifndef PABLO_DEFINITIONS_HPP
17#define PABLO_DEFINITIONS_HPP
18
19// runtime libraries
20#include <simd-lib/bitblock.hpp>
21#include <simd-lib/carryQ.hpp>
22#include <simd-lib/pabloSupport.hpp>
23
24// migrate error tracker, line/column tracker to compiler runtime
25#include <ErrorTracker.h>
26ErrorTracker error_tracker;
27
28#define assert_0_error(errkind, errstrm) error_tracker.NoteError(errkind, errstrm);
29BitBlock EOF_mask = simd<1>::constant<1>();
30
31// namespace pablo
32// {
33struct KernelName
34{
35        KernelName()
36        {
37               
38        }
39         
40        IDISA_INLINE void do_block()
41        {
42                BitBlock a;
43                BitBlock b;
44                BitBlock c;
45                BitBlock k;
46                BitBlock r;
47                bool t;
48                t = bitblock::any(a);
49                r = bitblock::slli<10>(a);
50                bitblock::store_unaligned(a, &b);
51                r = bitblock::load_aligned(&b);
52                r = simd_not(a);
53                r = simd_nor(a,b);
54                r = simd<16>::ifh(a,b,c);
55                r = simd<2>::constant<3>();
56                r = simd<8>::slli<1>(a);
57                r = simd<1>::add(a,b);
58                r = simd<2>::sub(a,b);
59                r = simd<4>::mult(a,b);
60                r = simd<8>::eq(a,b);
61                r = simd<16>::gt(a,b);
62                r = simd<32>::ugt(a,b);
63                r = simd<64>::lt(a,b);
64                r = simd<128>::ult(a,b);
65                r = simd<128>::max(a,b);
66                r = simd<1>::umax(a,b);
67                r = simd<2>::min(a,b);
68                r = simd<4>::umin(a,b);
69                r = simd<64>::sll(a,b);
70                r = simd<64>::srl(a,b);
71        }
72       
73        IDISA_INLINE void do_final_block()
74        {
75               
76        }
77       
78        CarryDeclare(carry_set_0,0,0);
79};
80 
81
82// } // pablo namespace
83
84#endif // PABLO_DEFINITIONS_HPP
Note: See TracBrowser for help on using the repository browser.