Subversion Repositories tendra.SVN

Rev

Rev 5 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5 Rev 6
Line -... Line 1...
-
 
1
/*
-
 
2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
-
 
3
 * All rights reserved.
-
 
4
 *
-
 
5
 * Redistribution and use in source and binary forms, with or without
-
 
6
 * modification, are permitted provided that the following conditions are met:
-
 
7
 *
-
 
8
 * 1. Redistributions of source code must retain the above copyright notice,
-
 
9
 *    this list of conditions and the following disclaimer.
-
 
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
-
 
11
 *    this list of conditions and the following disclaimer in the documentation
-
 
12
 *    and/or other materials provided with the distribution.
-
 
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
-
 
14
 *    may be used to endorse or promote products derived from this software
-
 
15
 *    without specific, prior written permission.
-
 
16
 *
-
 
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
-
 
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-
 
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-
 
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
-
 
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-
 
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-
 
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-
 
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-
 
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-
 
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-
 
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 
28
 *
-
 
29
 * $Id$
-
 
30
 */
1
/*
31
/*
2
    		 Crown Copyright (c) 1996
32
    		 Crown Copyright (c) 1996
3
    
33
 
4
    This TenDRA(r) Computer Program is subject to Copyright
34
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
35
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
36
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
37
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
38
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
39
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
40
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
41
    shall be deemed to be acceptance of the following conditions:-
12
    
42
 
13
        (1) Its Recipients shall ensure that this Notice is
43
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
44
        reproduced upon any copies or amended versions of it;
15
    
45
 
16
        (2) Any amended version of it shall be clearly marked to
46
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
47
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
48
        for the relevant amendment or amendments;
19
    
49
 
20
        (3) Its onward transfer from a recipient to another
50
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
51
        party shall be deemed to be that party's acceptance of
22
        these conditions;
52
        these conditions;
23
    
53
 
24
        (4) DERA gives no warranty or assurance as to its
54
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
55
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
56
        no liability whatsoever in relation to any use to which
27
        it may be put.
57
        it may be put.
28
*/
58
*/
Line 56... Line 86...
56
 *
86
 *
57
 * Revision 1.1.1.1  1996/03/26  15:45:15  john
87
 * Revision 1.1.1.1  1996/03/26  15:45:15  john
58
 *
88
 *
59
 * Revision 1.4  94/11/16  10:37:07  10:37:07  ra (Robert Andrews)
89
 * Revision 1.4  94/11/16  10:37:07  10:37:07  ra (Robert Andrews)
60
 * Added support for integer absolute.
90
 * Added support for integer absolute.
61
 * 
91
 *
62
 * Revision 1.3  94/06/29  14:23:06  14:23:06  ra (Robert Andrews)
92
 * Revision 1.3  94/06/29  14:23:06  14:23:06  ra (Robert Andrews)
63
 * Declare maximum and minimum operations.
93
 * Declare maximum and minimum operations.
64
 * 
94
 *
65
 * Revision 1.2  93/03/03  14:47:52  14:47:52  ra (Robert Andrews)
95
 * Revision 1.2  93/03/03  14:47:52  14:47:52  ra (Robert Andrews)
66
 * Added error handling routines.
96
 * Added error handling routines.
67
 * 
97
 *
68
 * Revision 1.1  93/02/22  17:16:15  17:16:15  ra (Robert Andrews)
98
 * Revision 1.1  93/02/22  17:16:15  17:16:15  ra (Robert Andrews)
69
 * Initial revision
99
 * Initial revision
70
 * 
100
 *
71
--------------------------------------------------------------------------
101
--------------------------------------------------------------------------
72
*/
102
*/
73
 
103
 
74
 
104
 
75
#ifndef OPERATIONS_INCLUDED
105
#ifndef OPERATIONS_INCLUDED
76
#define OPERATIONS_INCLUDED
106
#define OPERATIONS_INCLUDED
77
#include "ecodes.h"
107
#include "ecodes.h"
78
extern bool have_cond ;
108
extern bool have_cond;
79
extern bool D1_is_special ;
109
extern bool D1_is_special;
80
extern int crt_rmode ;
110
extern int crt_rmode;
81
 
111
 
82
extern void absop PROTO_S ( ( shape, where, where ) ) ;
112
extern void absop(shape, where, where);
83
extern void add PROTO_S ( ( shape, where, where, where ) ) ;
113
extern void add(shape, where, where, where);
84
extern void and PROTO_S ( ( shape, where, where, where ) ) ;
114
extern void and(shape, where, where, where);
85
extern void bitf_to_int PROTO_S ( ( exp, shape, where, ash ) ) ;
115
extern void bitf_to_int(exp, shape, where, ash);
86
extern void bit_test PROTO_S ( ( shape, where, where ) ) ;
116
extern void bit_test(shape, where, where);
87
extern void callins PROTO_S ( ( long, exp ) ) ;
117
extern void callins(long, exp);
88
extern void jmpins PROTO_S ( ( exp ) ) ;
118
extern void jmpins(exp);
89
extern void trap_ins PROTO_S ( ( int ) ) ;
119
extern void trap_ins(int);
90
extern void change_var_sh PROTO_S ( ( shape, shape, where, where ) ) ;
120
extern void change_var_sh(shape, shape, where, where);
91
extern void change_var PROTO_S ( ( shape, where, where ) ) ;
121
extern void change_var(shape, where, where);
92
extern bool cmp PROTO_S ( ( shape, where, where, long ) ) ;
122
extern bool cmp(shape, where, where, long);
93
extern void div1 PROTO_S ( ( shape, where, where, where ) ) ;
123
extern void div1(shape, where, where, where);
94
extern void div2 PROTO_S ( ( shape, where, where, where ) ) ;
124
extern void div2(shape, where, where, where);
95
extern void exactdiv PROTO_S ( ( shape, where, where, where ) ) ;
125
extern void exactdiv(shape, where, where, where);
96
extern void int_to_bitf PROTO_S ( ( exp, exp, ash ) ) ;
126
extern void int_to_bitf(exp, exp, ash);
97
extern void maxop PROTO_S ( ( shape, where, where, where ) ) ;
127
extern void maxop(shape, where, where, where);
98
extern void minop PROTO_S ( ( shape, where, where, where ) ) ;
128
extern void minop(shape, where, where, where);
99
extern void mova PROTO_S ( ( where, where ) ) ;
129
extern void mova(where, where);
100
extern void move PROTO_S ( ( shape, where, where ) ) ;
130
extern void move(shape, where, where);
101
extern void move_const PROTO_S ( ( shape, long, long, where ) ) ;
131
extern void move_const(shape, long, long, where);
102
extern void move_bytes PROTO_S ( ( long, where, where, int ) ) ;
132
extern void move_bytes(long, where, where, int);
103
extern void mult PROTO_S ( ( shape, where, where, where ) ) ;
133
extern void mult(shape, where, where, where);
104
extern void negate PROTO_S ( ( shape, where, where ) ) ;
134
extern void negate(shape, where, where);
105
extern void not PROTO_S ( ( shape, where, where ) ) ;
135
extern void not(shape, where, where);
106
extern void or PROTO_S ( ( shape, where, where, where ) ) ;
136
extern void or(shape, where, where, where);
107
extern void rem1 PROTO_S ( ( shape, where, where, where ) ) ;
137
extern void rem1(shape, where, where, where);
108
extern void rem2 PROTO_S ( ( shape, where, where, where ) ) ;
138
extern void rem2(shape, where, where, where);
109
extern void rshift PROTO_S ( ( shape, where, where, where ) ) ;
139
extern void rshift(shape, where, where, where);
110
extern void shift PROTO_S ( ( shape, where, where, where ) ) ;
140
extern void shift(shape, where, where, where);
111
extern void sub PROTO_S ( ( shape, where, where, where ) ) ;
141
extern void sub(shape, where, where, where);
112
extern void xor PROTO_S ( ( shape, where, where, where ) ) ;
142
extern void xor(shape, where, where, where);
113
 
143
 
114
extern void abs_float PROTO_S ( ( shape, where, where ) ) ;
144
extern void abs_float(shape, where, where);
115
extern void change_flvar PROTO_S ( ( shape, where, where ) ) ;
145
extern void change_flvar(shape, where, where);
116
extern void fl_binop PROTO_S ( ( int, shape, where, where, where ) ) ;
146
extern void fl_binop(int, shape, where, where, where);
117
extern void int_to_float PROTO_S ( ( shape, where, where ) ) ;
147
extern void int_to_float(shape, where, where);
118
extern void negate_float PROTO_S ( ( shape, where, where ) ) ;
148
extern void negate_float(shape, where, where);
119
extern void round_float PROTO_S ( ( shape, where, where ) ) ;
149
extern void round_float(shape, where, where);
120
 
150
 
121
extern long range_max PROTO_S ( (shape) );
151
extern long range_max(shape);
122
extern long range_min PROTO_S ( (shape) );
152
extern long range_min(shape);
123
 
153
 
124
extern int overflow_jump ;
154
extern int overflow_jump;
125
extern int err_continue;
155
extern int err_continue;
126
 
156
 
127
#define CONTINUE_ERR 2
157
#define CONTINUE_ERR 2
128
 
158
 
129
#define set_continue(e) if(errhandle(e)==CONTINUE_ERR) err_continue = 1
159
#define set_continue(e) if (errhandle(e) ==CONTINUE_ERR)err_continue = 1
130
#define clear_continue(e) (err_continue = 0)
160
#define clear_continue(e)(err_continue = 0)
131
#define have_continue() (err_continue != 0)
161
#define have_continue()(err_continue != 0)
132
#endif
162
#endif