Subversion Repositories tendra.SVN

Rev

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

Rev 2 Rev 7
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) 1997
32
    		 Crown Copyright (c) 1997
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
*/
29
 
59
 
30
 
60
 
31
/* 	inst_fmtdecs.h,v 1.4 1995/09/04 16:23:56 john Exp	 */
61
/* 	inst_fmtdecs.h,v 1.4 1995/09/04 16:23:56 john Exp	 */
32
 
62
 
33
 
63
 
34
/*
64
/*
35
   instfmtdecs.h
65
   instfmtdecs.h
Line 47... Line 77...
47
#include "scheduler.h"
77
#include "scheduler.h"
48
#endif
78
#endif
49
#define IMMEDIATE_MAX	255
79
#define IMMEDIATE_MAX	255
50
#define IMMEDIATE_MIN	-128
80
#define IMMEDIATE_MIN	-128
51
 
81
 
52
extern char *outass PROTO_S ((char *));
82
extern char *outass(char *);
53
extern void load_store PROTO_S ((instruction,int,baseoff));
83
extern void load_store(instruction,int,baseoff);
54
extern void load_store_immediate PROTO_S ((instruction,int,INT64));
84
extern void load_store_immediate(instruction,int,INT64);
55
extern void load_store_label PROTO_S ((instruction,int,int));
85
extern void load_store_label(instruction,int,int);
56
extern void integer_branch PROTO_S ((instruction,int,int));
86
extern void integer_branch(instruction,int,int);
57
extern void integer_jump PROTO_S ((instruction,int,int,int));
87
extern void integer_jump(instruction,int,int,int);
58
extern void integer_jump_external PROTO_S ((instruction,int,baseoff));
88
extern void integer_jump_external(instruction,int,baseoff);
59
extern void integer_jump_fn PROTO_S ((instruction,int,exp,space));
89
extern void integer_jump_fn(instruction,int,exp,space);
60
extern void operate_fmt PROTO_S ((instruction,int,int,int));
90
extern void operate_fmt(instruction,int,int,int);
61
extern void operate_fmt_immediate PROTO_S ((instruction,int,int,int));
91
extern void operate_fmt_immediate(instruction,int,int,int);
62
extern void operate_fmt_big_immediate PROTO_S ((instruction,int,INT64,int));
92
extern void operate_fmt_big_immediate(instruction,int,INT64,int);
63
extern void float_load_store PROTO_S ((instruction,int,baseoff));
93
extern void float_load_store(instruction,int,baseoff);
64
extern void float_branch PROTO_S ((instruction,int,int));
94
extern void float_branch(instruction,int,int);
65
extern void float_op PROTO_S ((instruction,int,int,int));
95
extern void float_op(instruction,int,int,int);
66
extern void float_convert PROTO_S ((instruction,int,int));
96
extern void float_convert(instruction,int,int);
67
extern void float_load_store_immediate PROTO_S ((instruction,int,char*));
97
extern void float_load_store_immediate(instruction,int,char*);
68
extern void call_pal PROTO_S ((instruction, instruction));
98
extern void call_pal(instruction, instruction);
69
extern void fetch PROTO_S ((instruction,baseoff));
99
extern void fetch(instruction,baseoff);
70
extern void no_parameter_instructions PROTO_S ((instruction));
100
extern void no_parameter_instructions(instruction);
71
extern void single_parameter_instructions PROTO_S ((instruction,int));
101
extern void single_parameter_instructions(instruction,int);
72
extern void memory_fmt PROTO_S ((instruction,int,int));
102
extern void memory_fmt(instruction,int,int);
73
extern void operate_fmt PROTO_S ((instruction,int,int,int));
103
extern void operate_fmt(instruction,int,int,int);
74
#if DO_SCHEDULE
104
#if DO_SCHEDULE
75
extern void out_code PROTO_S ((Instruction_data));
105
extern void out_code(Instruction_data);
76
extern void add_instruction PROTO_S ((Instruction));
106
extern void add_instruction(Instruction);
77
extern Instruction_data get_new_ins_data PROTO_S ((void));
107
extern Instruction_data get_new_ins_data(void);
78
extern void output_instruction PROTO_S ((Class,char*,char*));
108
extern void output_instruction(Class,char*,char*);
79
extern void output_data PROTO_S ((char*,char*));
109
extern void output_data(char*,char*);
80
 
110
 
81
typedef struct String_dat
111
typedef struct String_dat
82
{
112
{
83
    char data;
113
    char data;
84
    struct String_dat *next;
114
    struct String_dat *next;
85
} StringData;
115
} StringData;
Line 88... Line 118...
88
{
118
{
89
    StringData *head,*tail;
119
    StringData *head,*tail;
90
} String;
120
} String;
91
 
121
 
92
#else
122
#else
93
#define output_instruction(class,string,op) op
123
#define output_instruction(class,string,op)op
94
#define output_data(string,op) op
124
#define output_data(string,op)op
95
#endif
125
#endif
96
 
126
 
97
#endif /*INSTFMTDECS_H*/
127
#endif /*INSTFMTDECS_H*/
98
 
128
 
99
 
129
 
100
  
130
 
101
 
131
 
102
  
132
 
103
 
133
 
104
 
134
 
105
 
135