Make simulated loads/stores faster on x86, AIX, and big endian hosts
[platform/upstream/binutils.git] / sim / d10v / ChangeLog
1 Thu Oct 17 12:24:16 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
2
3         * endian.c: Optimize simulated loads/stores on x86, AIX, and big
4         endian hosts.
5
6         * configure.in (--enable-sim-bswap): New switch to enable using
7         the BSWAP instruction on x86's.
8         * configure: Regenerate.
9
10         * Makefile.in ({SWAP,CONFIG}_CFLAGS): Add --enable-sim-bswap
11         support.
12
13 Wed Oct 16 13:50:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
14
15         * endian.c: New file.  Move endian functions here from interp.c.
16         Optimize code, and make it work as either inline functions or as a
17         separate file.
18
19         * interp.c: Move endian functions from here to endian.c.
20
21         * Makefile.in (INCLUDE): Add endian.c.
22         (run,libsim.a): Add dependency on endian.o.
23         (endian.o): Add dependency.
24
25         * d10v_sim.h (read/write support): Always go through the machine
26         independent endian functions.  If compiling with GCC and
27         optimizing, include endian.c so the endian functions are inlined.
28
29         * simops.c (OP_5F00): Correct tracing of accumulators.  
30
31 Tue Oct 15 10:57:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
32
33         * simops.c (OP_5F00): Add support for getpid, kill system calls.
34
35         * interp.c (do_{2_short,parallel}): If an exception is raised,
36         don't execute the second instruction.
37
38 Sat Oct 12 22:17:43 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
39
40         * simops.c (OP_{31000000,6601,6201,6200}): Store address in a
41         temporary in case the register is overriden when loading.
42         (OP_6200): Output type is OP_DREG for tracing.
43
44 Fri Oct  4 23:46:18 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
45
46         * d10v_sim.h (struct _state): Add mem_{min,max} fields.
47
48         * interp.c (sim_size): Initialize mem_{min,max} fields.
49         (sim_write): Update mem_{min,max} fields.
50         (sim_resume): If PC is not in the minimum/maximum memory range,
51         abort.
52         (sim_create_inferior): Preserve mem_{min,max} fields.
53
54 Fri Sep 27 13:11:58 1996  Mark Alexander  <marka@cygnus.com>
55
56         * simops.c (OP_5F00): Add support for time() system call.
57
58 Wed Sep 25 16:31:41 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
59
60         * simops.c (OP_{6E01,6A01,6E1F,6A00}): Print both words being
61         stored if tracing.
62         (OP_5F00,trace_{in,out}put_func): Add finer grain tracing for
63         system calls.
64
65 Mon Sep 23 17:55:30 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
66
67         * simops.c (op_types): Add OP_{CONSTANT8,R2,R3}.
68         (trace_input_func): Add support for  OP_{CONSTANT8,R2,R3}.
69         (OP_{4900,24800000,4800,4A00,4B00,4D00,4C00}): Add OP_R2 and OP_R3
70         to call/subroutine returns to trace the first two arguments and
71         the return value.  For small jumps, use CONSTANT8, not CONSTANT16.
72
73 Fri Sep 20 15:36:45 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
74
75         * interp.c (sim_create_inferior): Reinitialize State every time 
76         sim_create_inferior() is called.
77
78 Thu Sep 19 21:38:20 1996  Michael Meissner  <meissner@wogglebug.ziplink.net>
79
80         * simops.c (OP_{401,2000000,601,3000000,23000000}): Get sign right
81         on comparisons.
82         (OP_401): Fix tracing information.
83
84 Thu Sep 19 10:30:22 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
85
86         * simops.c (SIZE_{PC,LINE_NUMBER}): New default sizes for output.
87         (trace_input_func): Use them.
88         (trace_input_func): Make sure there is a trailing space after the
89         instruction.
90         (OP_6200): Fix tracing info.
91
92         * Makefile.in (run): Add dependencies on libbfd.a and
93         libiberity.a.
94
95 Wed Sep 18 09:13:25 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
96
97         * d10v_sim.h (DEBUG_INSTRUCTION): New debug value to include line
98         numbers and function names in debug trace.
99         (DEBUG): If not defined, set to DEBUG_TRACE, DEBUG_VALUES, and
100         DEBUG_LINE_NUMBER. 
101         (SIG_D10V_{STOP,EXIT}): Values to represent the stop instruction
102         and exit system call trap being executed.
103
104         * interp.c (sim_stop_reason): Set exit code correctly for stop
105         instruction and exit system call trap.
106
107         * configure.in (--enable-sim-cflags): Remove trace case.
108         (--enable-sim-debug): New switch to set the debug values.
109         * configure: Regenerate.
110
111         * simops.c (trace_{input,output}_func): Rename from
112         trace_{input,output}.
113         (trace_{input,output}): Call trace_{input,output}_func if
114         d10v_debug is non-zero.
115         (SIZE_INSTRUCTION): Cut down to 8.
116         (SIZE_OPERANDS): Cut down to 18.
117         (SIZE_LOCATION): New value for size of line number, function name
118         field.
119         (init_text_p,text{,_start,_end}): New static variables for
120         printing line number and function name.
121         (exec_bfd): New external that run.c sets.
122         (trace_input_func): Print line number and function name if
123         available and if desired.
124         (OP_4E09): Don't print out DBT message.
125         (OP_5FE0): Set exception field to SIG_D10V_STOP.
126         (OP_5F00): Set exception field to SIG_D10V_EXIT.        
127
128 Sat Sep 14 22:18:43 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
129
130         * interp.c (do_2_short): If the instruction encodes jump->ins,
131         don't do the second instruction if the jump succeeds.
132
133 Fri Sep 13 22:35:19 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
134
135         * simops.c (OP_5F00): Use unknown traps to print all GPRs,
136         accumulators, PC, and F0/F1/C flags.
137
138 Thu Sep 12 12:50:11 1996  Mark Alexander  <marka@cygnus.com>
139
140         * simops.c (OP_5F00): Fix problems with system calls.
141
142 Thu Sep 12 12:19:28 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
143
144         * simops.c (OP_5F00): Correct tracing information for trap.
145
146 Wed Sep 11 18:55:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
147
148         * Makefile.in (CSEARCH): Correctly find opcodes directory.
149
150 Mon Sep  9 13:27:26 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
151
152         * simops.c (trace_output): Properly align accumulator output.
153         (OP_3{0,2,4}00): Properly parenthesize test expression.  Add error
154         if shift count is too high.
155         (OP_4E{00,02,04,20,22,40,42}): Make tests agree with book.
156         (OP_4E09): Make cpfg properly trace the input flags.
157         (op_types): Add OP_FLAG_OUTPUT.
158         (trace_{input,output}): Support OP_FLAG_OUTPUT.
159         (OP_31000000): This ld2w varient is a 16-bit memory reference, not
160         an 8-bit memory reference instruction for tracing purposes.
161         (OP_201): Addi needs to set the carry.
162
163 Fri Sep  6 17:56:17 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
164
165         * simops.c (OP_2600, OP_2601): Changed min and max comparisons
166         to use signed register values.
167
168 Wed Sep  4 11:35:17 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
169
170         * d10v_sim.h (DEBUG_*): Add bit flags for controlling debug
171         output.
172         (_ins_type): New enumeration to specify which container an
173         instruction is in, and whether it is part of a parallel operation.
174         (_state): Add ins_type field.
175         ({,u}int{8,16,32,64}): Use limits.h to size the appropriate types.
176         (ins_type_counters): Counters for the various instruction types.
177         ({left,right}_nops): Counters for the number of nops in each
178         container.
179         (d10v_debug): New variable to indicate whether debugging is turned
180         on.
181
182         * simops.c: (all functions): Change all #ifdef DEBUG code so that
183         the input and output values can be traced, along with the
184         instruction type.  Make the -t option enable tracing.
185         (all functions): Change printf calls to use the printf_filtered
186         function in the callback table.
187
188         * interp.c (_leftright): New enumeration to say whether 2 short
189         instructions are done left first or right first.
190         (do_{long,2_short,parallel}): Indicate in the machine state which
191         type of instruction this is.  Count each of the types of
192         instructions executed.
193         (sim_size): Only print the memory sizes if DEBUG_MEMSIZE debug
194         flag is set.
195         (sim_resume): Pass left/right indication to do_2_short.
196         (all functions): Change printf calls to use the printf_filtered
197         function in the callback table.
198         (sim_trace): Turn on debug flag if DEBUG was defined, and call
199         sim_resume.
200         (sim_info): Print out statistics on instructions.
201         (sim_{trace,create_inferior}): Eliminate extraneous output unless
202         debugging.
203         (sim_open): If args == -t and DEBUG was defined, set d10v_debug.
204         Only initialize the hash table the first time sim_open is called.
205
206         * Makefile.in: Make objects depend on d10v_sim.h.
207         ({,SIM_}CFLAGS): Include configure dependent switches.  Setting
208         CFLAGS does not override host/target defines or SIM_CFLAGS.
209         (CC_FOR_BUILD,gencode): Use CC_FOR_BUILD to compile gencode.
210         (run): By default, the math library is not needed to be linked
211         in.
212         ({BFD,LIBIBERTY}_LIB): Define as variables so they can be
213         overridden.
214         (VPATH): Don't set to anything but @srcdir@ to work with non-GNU
215         makes.
216         ({run,callback}.o): Provide explicit paths to their appropriate
217         source directories.
218         (gencode{,.o},d10v-opc.o): Split compilation into creating object
219         and linking.  Instead of linking in libopcodes.a, just compile
220         d10v-opc.o directly to handle canadian cross.
221         (CSEARCH): Add opcodes directory.
222
223         * configure.in (--enable-sim-cflags): New switch to allow user to
224         set the defaults.
225         (CC_FOR_BUILD): Deal with canadian crosses.
226         * configure: Regenerate.
227
228 Wed Sep 04 04:45:34 1996  Mark Alexander  <marka@cygnus.com>
229
230         * simops.c: Include correct syscall.h for d10v, not host's.
231         Fix #ifdef SYS_stat.
232
233 Tue Sep  3 14:00:04 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
234
235         * simops.c (OP_5F00): Wrap all SYS_xxx traps with #ifdef.
236         Add trap 2 to be printf and trap 3 to be putchar.
237
238 Wed Aug 28 21:42:34 1996  Mark Alexander  <marka@cygnus.com>
239
240         * Makefile.in, d10v_sim.h, interp.c, simops.c: Add support
241         for low-level system calls.
242
243 Wed Aug 28 17:33:19 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
244
245         * Makefile.in, d10v_sim.h, interp.c: Fix byte-order problems.
246
247 Mon Aug 26 18:30:28 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
248
249         * d10v_sim.h (SEXT32): Added.
250         * interp.c: Commented out printfs.
251         * simops.c:  Fixed error in sb and st2w. 
252
253 Thu Aug 15 13:30:03 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
254
255         * Makefile.in, d10v_sim.h, interp.c, simops.c: Added remaining
256         DSP instructions.  Added modulo addressing.
257
258 Sun Aug 11 12:57:15 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
259
260         * Makefile.in, d10v_sim.h, interp.c, simops.c: Snapshot.
261
262 Fri Aug  2 17:44:24 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
263
264         * d10v_sim.h, simops.c: Snapshot.
265
266 Thu Aug  1 17:05:24 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
267
268         * ChangeLog, Makefile.in, configure, configure.in, d10v_sim.h, 
269         gencode.c, interp.c, simops.c: Created.
270