aboutsummaryrefslogtreecommitdiff
path: root/sim/h8300/compile.c
AgeCommit message (Collapse)AuthorFilesLines
2016-01-06sim: sim_{create_inferior,open,parse_args}: constify argv/env slightlyMike Frysinger1-2/+3
2016-01-03 Mike Frysinger <vapier@gentoo.org> * sim-options.c (sim_parse_args): Mark argv array const. * sim-options.h (sim_parse_args): Likewise.
2016-01-03sim: parse_args: display getopt error ourselvesMike Frysinger1-3/+1
Fix a long standing todo where we let getopt write directly to stderr when an invalid option is passed. Use the sim io funcs instead as they go through the filtered callbacks that gdb wants.
2015-12-30sim: h8300: inline sim_state_initializeMike Frysinger1-27/+1
All the state is handled already by the common cpu allocation which zeros out the entire state.
2015-12-30sim: h8300: simplify h8300_reg_{fetch,store} funcsMike Frysinger1-53/+17
We can leverage the cpu->regs array rather than going through the function helpers to get nice compact code. Further, fix up the return values: return -1 when we can't find a register (and let the caller write out warnings), return 2/4 when we actually write out that amount, and handle the zero reg.
2015-12-30sim: h8300: switch to common sim-resumeMike Frysinger1-39/+41
2015-12-30sim: h8300: move default endian/alignment to configureMike Frysinger1-4/+0
2015-12-30sim: arm/d10v/h8300/m68hc11/microblaze/mips/mn10300/moxie/sh/v850: convert ↵Mike Frysinger1-5/+8
to common sim_{fetch,store}_register
2015-12-30sim: h8300: move unused/buggy lregs arrayMike Frysinger1-4/+0
This array isn't used anywhere, and the init phase actually corrupts some memory because the array has 18 elements but tries to set the 19th (ZERO) position.
2015-12-24sim: h8300: move h8300-specific options out of common codeMike Frysinger1-0/+54
Register the options in sim_open like other arches to avoid having to hack up the common modules.
2015-11-22sim: h8300: delete global callback/kind/nameMike Frysinger1-47/+18
We can use the sim state everywhere now to get these values on the fly.
2015-11-15sim: h8300: convert to common sim_{reason,stop}Mike Frysinger1-14/+0
This ends up being pretty easy as the h8300 port already supports much of the common engine core.
2015-11-15sim: sim-close: unify sim_close logicMike Frysinger1-6/+0
Other than the nice advantage of all sims having to declare one fewer common function, this also fixes leakage in pretty much every sim. Many were not freeing any resources, and a few were inconsistent as to the ones they did. Now we have a single module that takes care of all the logic for us. Most of the non-cgen based ones could be deleted outright. The cgen ones required adding a callback to the arch-specific cleanup func. The few that still have close callbacks are to manage their internal state. We do not convert erc32, m32c, ppc, rl78, or rx as they do not use the common sim core.
2015-11-10sim: h8300: drop unused littleendian variableMike Frysinger1-13/+0
2015-04-17sim: arm/cr16/d10v/h8300/microblaze/sh: fill out sim-cpu pc fetch/store helpersMike Frysinger1-0/+22
This makes the common sim-cpu logic work.
2015-04-15sim: cris/frv/h8300/iq2000/lm32/m32r/sh64: standardize cpu stateMike Frysinger1-1/+9
This sets up the sim_state structure and the cpu member to match what we do in most other sims, and what the common code suggests. This is a step to unifying on the sim-cpu.o object.
2015-03-24sim: erc32/h8300/m68hc11: trim unused functionsMike Frysinger1-23/+0
These funcs are only used with the old run.o, and these sims use nrun.o, so drop these stub funcs.
2014-12-03callback.h:struct host_callback_struct compilation error on Windows hosts.Joel Brobecker1-2/+3
On Windows, a recent gnulib update imported the lstat module, and this caused a remote-sim.c build failure in struct host_callback_struct: In file included from /[...]/gdb/remote-sim.c:34:0: /[...]/gdb/../include/gdb/callback.h:93:9: error: duplicate member '_stati64' int (*lstat) (host_callback *, const char *, struct stat *); ^ What happens it that gnulib's stat.h makes the following defines: /* Large File Support on native Windows. */ #if 1 # define stat _stati64 #endif and then: #if 1 # if ! 0 /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif So, the following fields in struct host_callback_struct... int (*stat) (host_callback *, const char *, struct stat *); int (*fstat) (host_callback *, int, struct stat *); int (*lstat) (host_callback *, const char *, struct stat *); ... get translated to... int (*_stati64) (host_callback *, const char *, struct _stati64 *); int (*_fstati64) (host_callback *, int, struct _stati64 *); int (*_stati64) (host_callback *, const char *, struct _stati64 *); ... which causes two fields to have the same name. This patch fixes the issue by renaming the stat-related fields by adding a "to_" prefix, similar to what is done in GDB's target_ops vector. include/gdb/ChangeLog: * callback.h (struct host_callback_struct) <to_stat>: Renamed from "stat". <to_fstat>: Renamed from "fstat". <to_lstat>: Renamed from "lstat". sim/common/ChangeLog: * sim-io.c (sim_io_stat, sim_io_fstat): Adjust calls to "stat" and "fstat" callbacks by calls to "to_stat" and "to_fstat" (resp) callbacks following renaming in callback.h. * syscall.c (cb_syscall): Likewise. Adjust calls to "lstat" callback by call to "to_lstat" callback sim/cris/ChangeLog: * traps.c (cris_break_13_handler): Adjust call to "fstat" callback by call to "to_fstat" following renaming in callback.h. sim/h8300/ChangeLog: * compile.c (sim_resume): Adjust calls to "stat" and "fstat" callbacks by calls to "to_stat" and "to_fstat" (resp) callbacks following renaming in callback.h.
2014-03-05sim: constify prog_nameMike Frysinger1-1/+1
There's no need for the prog_name handed down to the core to be mutable, so add const markings to it and all the related funcs.
2014-02-17sim: delete duplicate SIGINT handlingMike Frysinger1-14/+0
Many of the simulators change the SIGINT handler. E.g., moxie/interp.c: sigsave = signal (SIGINT, interrupt); However, this is unnecessary. remote-sim.h already provides an API for asynchronously stopping a sim; and both gdb and the drivers (run.c and nrun.c at least, I didn't check the others) install a SIGINT handler which calls this method. URL: https://sourceware.org/bugzilla/show_bug.cgi?id=16450 Reported-by: Tom Tromey <tromey@redhat.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-05-19 PR 14072Nick Clifton1-0/+1
* wrapper.c: Include config.h before system header files. * callback.c: Include config.h before system header files. * cgen-trace.c: Likewise. * cgen-utils.c: Likewise. * gentmap.c: Likewise. * sim-if.c: Include config.h before system header files. * compile.c: Include config.h before system header files. * sim-main.h: Likewise. * gdb-if.c: Include config.h before system header files. * load.c: Likewise. * syscalls.c: Likewise. * trace.c: Likewise. * interp.c: Include config.h before system header files.
2011-07-05sim: start a unified sim_do_commandMike Frysinger1-7/+0
Since sim_do_command for many people simply calls sim_args_command, start a unified version of it. For people who handle their own options, they could switch to this by using sim_add_option_table instead. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-11http://sourceware.org/ml/gdb-patches/2010-11/msg00112.htmlAndrew Burgess1-1/+1
gdb/ChangeLog * remote-sim.c (gdbsim_store_register): Update API to sim_store_register to check more error conditions. include/gdb/ChangeLog * remote-sim.h (sim_store_register): Update the API documentation for this function. sim/erc32/ChangeLog sim/h8300/ChangeLog sim/m32c/ChangeLog sim/mn10300/ChangeLog sim/ppc/ChangeLog sim/rx/ChangeLog sim/v850/ChangeLog * ???.c (sim_store_register): Update return value to match new API.
2010-04-14sim: constify sim_write source buffer (part 2)Mike Frysinger1-1/+1
As pointed out by Sandra Loosemore, a bunch of targets define sim_write themselves instead of using the common/ code. So constify them too. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-12-092009-12-09 Yoshinori Sato <ysato@users.sourceforge.jp>Yoshinori Sato1-42/+36
* compile.c(fetch_1): Fix pre-dec, pre-inc, post-dec and post-inc. Index registers not masked memory areas. Only simply increment or decrement. * compile.c(store_1): Ditto.
2008-12-012008-12-01 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-2/+2
* compile.c: Add const to remove warning.
2007-07-032007-07-03 Yoshinori Sato <ysato@users.sourceforge.jp>Daniel Jacobowitz1-1/+1
* compile.c (sim_resume): Fix the last byte of ARGV for SYS_CMDLINE.
2006-07-19compile.c (OBITOP): Bit address mask low three bit.Yoshinori Sato1-3/+3
compile.c (decode): Fix warning.
2004-06-28sim/h8300/ChangeLog:Alexandre Oliva1-55/+9
2003-07-23 Richard Sandiford <rsandifo@redhat.com> * compile.c (sim_resume): Make sure that dst.reg refers to the right register byte in mova/sz.l @(dd,RnL),ERn. 2003-07-21 Richard Sandiford <rsandifo@redhat.com> * compile.c (sim_resume): Zero-extend immediate to muls, mulsu, mulxs, divs and divxs. sim/testsuite/sim/h8300/ChangeLog: 2003-07-22 Michael Snyder <msnyder@redhat.com> * mul.s: Don't try to use negative immediate (it's always unsigned). * div.s: Ditto.
2004-06-28* compile.c (sim_load): Update sd->memory_size.Alexandre Oliva1-0/+1
2004-06-102004-06-10 Michael Snyder <msnyder@redhat.com>Michael Snyder1-1/+1
Patch submitted by Nitin Yewale <NitinY@KPITCummins.com>. * compile.c (sim_resume): Corrected ANDC operation on EXR for H8S.
2004-01-062004-01-05 Michael Snyder <msnyder@redhat.com>Michael Snyder1-1/+1
* compile.c (sim_load): Don't pass a type to bfd_openr.
2003-12-11 Fix GDB crash problem when object file of different H8 cpu is loadedDhananjay Deshpande1-0/+2
2003-10-172003-10-17 Shrinivas Atre <shrinivasa@KPITCummins.com>Shrinivas Atre1-45/+67
* h8300/compile.c : Addition of extern variable h8300_normal_mode (SP) : Handle normal mode (bitfrom) : Use normal mode flag to return suitable value (lvalue) : Use normal mode flag to return command line location (decode) : Decode instruction correctly for normal mode (init_pointers) : Initialise memory correctly for normal mode (sim_resume) : Handle cases for normal mode using h8300_normal_mode flag (sim_store_register) : Handle 2 byte PC for normal mode (sim_fetch_register) : Handle 2 byte PC for normal mode (set_h8300h) : Set normal mode flag as per architechture (sim_load) : Allocate 64K for normal mode instead of bigger memory
2003-07-292003-07-18 Michael Snyder <msnyder@redhat.com>Michael Snyder1-36/+97
* compile.c (decode): Enhancements for mova. Initialize cst, reg, and rdisp inside the loop, for each new instruction. Defer correction of the disp2 values until later, and then adjust them by the size of the first operand, rather than the size of the instruction. (sim_resume): For mova, adjust the size of the second operand according to the type of the first operand (INDEXB vs. INDEXW). In cases where there is only one operand, the other two must both be composed on the fly.
2003-07-222003-07-22 Michael Snyder <msnyder@redhat.com>Michael Snyder1-0/+2
* compile.c (sim_resume): Revert 6-24 change, it does not work with gdb breakpoints.
2003-07-182003-07-17 Michael Snyder <msnyder@redhat.com>Michael Snyder1-9/+9
* compile.c (sim_resume): Handle shll reg, reg and shlr reg, reg.
2003-07-182003-07-17 Michael Snyder <msnyder@redhat.com>Michael Snyder1-1/+3
* compile.c (decode): IMM16 is always zero-extended.
2003-07-022003-06-24 Michael Snyder <msnyder@redhat.com>Michael Snyder1-0/+6
* sim-main.h (SIM_WIFSTOPPED, SIM_WSTOPSIG): Define. * compile.c (sim_resume): Use the above to return stop signal.
2003-06-192003-06-18 Michael Snyder <msnyder@redhat.com>Michael Snyder1-89/+153
* compile.c: Replace "Hitachi" with "Renesas". (decode): Distinguish AV_H8S from AV_H8H. (sim_resume): H8SX can use any register for TAS. (decode): Add support for VECIND. (sim_resume): Implement rte/l and rts/l. (GETSR): New macro (actually old macro reincarnated). (decode): Add handling for IMM2. (sim_resume): Drop extra block around jmp, jsr, rts. Add handling for trapa and rte. For divxu.b, change 0xffff mask to 0xff. (set_h8300h): Add bfd_mach_h8300sxn machine.
2003-06-192003-06-05 Michael Snyder <msnyder@redhat.com>Michael Snyder1-5/+27
* compile.c (sim_fetch_register): Handle SBR, VBR, MACH, MACL. (sim_store_register): Ditto.
2003-06-052003-06-04 Michael Snyder <msnyder@redhat.com>Michael Snyder1-12/+10
* compile.c (sim_info): Fix typo in output. * h8300/compile.c (set_h8300h): Replace 'flag' arguments with a bfd_machine argument, and decode it inline. Check for bfd_mach_h8300hn and bfd_mach_h8300sn.
2003-06-042003-06-04 Michael Snyder <msnyder@redhat.com>Michael Snyder1-1/+1
* compile.c (sim_info): Fix typo in output.
2003-06-032003-06-03 Michael Snyder <msnyder@redhat.com>Michael Snyder1-1018/+3210
* h8300/compile.c: Add h8300sx insns and addressing modes. * h8300/sim-main.h: Replaces h8300/inst.h. * h8300/Makefile.in: Tweak to bring in some sim/common stuff.
2003-04-132003-04-13 Michael Snyder <msnyder@redhat.com>Michael Snyder1-0/+51
* compile.c (sim_resume): Implement 'daa' and 'das' instructions.
2003-03-20Added Commandline Support.D.Venkatasubramanian1-0/+198
2003-03-20 D.Venkatasubramanian <dvenkat@noida.hcltech.com> * compile.c (cmdline_location): Added function to return the location of 8-bit (256 locations) where the Command Line arguments would be stored. (decode): Added a TRAP to 0xcc for Commandline processing using pseudo opcode O_SYS_CMDLINE. (sim_resume): Added handling of O_SYS_CMDLINE Trap. (sim_create_inferior): Setting a pointer to Commandline Args array. * inst.h: Added a new variable ptr_command_line for storing pointer to Commandline array.
2003-03-14File I/O Support added.D.Venkatasubramanian1-6/+307
2003-03-14 D.Venkatasubramanian <dvenkat@noida.hcltech.com> * compile.c (decode): Added code for some more magic traps. * compile.c (sim_resume): Added support for File I/O system calls through callback to host_system. System calls provided support for : open, read, write, lseek, close, stat, fstat Only basic support for stat and fstat.
2003-02-27Index: arm/ChangeLogAndrew Cagney1-2/+2
2003-02-27 Andrew Cagney <cagney@redhat.com> * wrapper.c (sim_create_inferior, sim_open): Rename _bfd to bfd. Index: common/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * sim-utils.h (sim_analyze_program, sim_load_file): Rename _bfd to bfd. * sim-hload.c (sim_load), sim-base.h (sim_state_base): Ditto. * nrun.c (main): Ditto. Index: d10v/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: erc32/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interf.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: h8300/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * compile.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: h8500/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * compile.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: i960/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * sim-if.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: m32r/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * sim-if.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: m68hc11/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (sim_prepare_for_program, sim_open) (sim_create_inferior): Rename _bfd to bfd. Index: mcore/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: mips/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (sim_open): (sim_create_inferior): Index: mn10200/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: mn10300/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (sim_open, sim_create_inferior, sim_open) (sim_create_inferior): Rename _bfd to bfd. Index: ppc/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * sim_calls.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: sh/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (init_dsp, sim_open, sim_create_inferior): Rename _bfd to bfd. Index: v850/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * interp.c (sim_open, sim_create_inferior): Rename _bfd to bfd. Index: z8k/ChangeLog 2003-02-27 Andrew Cagney <cagney@redhat.com> * iface.c (sim_open, sim_create_inferior): Rename _bfd to bfd.
2003-02-05 * compile.c (init_pointers): Abort if wreg never gets initialized.Kazu Hirata1-2/+5
(sim_resume): Fix the handling of exts.w and extu.w.
2003-02-01 * compile.c (sim_resume): Fix the handling of bxor.Kazu Hirata1-1/+1
2003-01-16Missed one...Michael Snyder1-2/+1