Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
(os_error): New function.
(default_callback): Add os_error.
|
|
|
|
|
|
simulated.
|
|
values from instructions. Use them consistently.
|
|
(sim_resume): Remove unused variable "opcode".
* simops.c: Fix some uninitialized variable problems, add
parens to fix various -Wall warnings.
Fixing assorted -Wall problems.
|
|
|
|
to the OP_* declarations.
(write_template): Similarly for function templates.
* interp.c (insn, extension): Remove global variables. Instead
pass them as arguments to the OP_* functions.
* mn10300_sim.h: Remove decls for "insn" and "extension".
* simops.c (OP_*): Accept "insn" and "extension" as arguments
instead of using globals.
Starting to clean things up.
|
|
Fixes remaining hangs while running c-torture execution tests.
Only 12 c-torture execution failures left:
* 920625-1.c fails all 6 execution tests.
* 960521-1.c fails all 6 execution tests.
|
|
|
|
"inc dn" does effect the condition codes.
Just something I noticed.
|
|
"div" instruction.
Fixes another dozen c-torture execution failures.
|
|
* Makefile.in: Only link in -ltermcap if it exists.
* erc32.c: Update to version 2.6a. Fix uart handling.
* exec.c: Update to version 2.6a. Add sparclite support.
* float.c: Update to version 2.6a. Convert comments to
preprocessor warnings. Add __setfpucw() for i385 hosts so floating
point exceptions work.
* func.c: Update to version 2.6a. Fix uart handling, add support
for user error traps.
* help.c: Update to version 2.6a. Add help note on user error
traps.
* interf.c: Update to version 2.6a. Fix uart handling, and add
sparclite support.
* examples/gccx: Use sparclite cross compiler, not native gcc.
* examples/srt0.S: Use "mov" rather than "wr" for manipulating
the psr register.
|
|
Fix typos/thinkos in several "cmp" and "sub" instructions.
Another couple dozen c-torture failures fixed.
|
|
instructions.
Another dozen execution failures fixed.
|
|
Fixes 80 or so c-torture execution failures. 400 to go.
|
|
Fixes several hangs in the c-torture execution tests. Also fixes about
40 failures.
|
|
Along with some compiler, bfd, assembler changes this fixes 90 or so
c-torture execution failures.
|
|
Fixes more c-torture problems.
|
|
"add imm,dn".
Fixes a half-dozen (of several hundred :( c-torture failures.
|
|
main(){write (0, "hello world\n", 13);} works!
|
|
pointer in "call" and "calls" instructions. Rough cut
at emulated system calls.
|
|
Everything except the extended instructions, the loop instructions,
trap, rti, and rtm.
|
|
|
|
16 bit instructions.
|
|
Moving right along...
|
|
abort for instructions we're not implementing now.
|
|
|
|
Implments most instructions with first nibble 0x0 - 0xe and
those with the first byte 0xf0 - 0xf2.
|
|
Function calls and conditional branches work!
|
|
(REG_MDR): Define.
* simops.c: Implement "cmp", "calls", "rets", "jmp" and
a few additional random insns.
We can now function calls. We get out of crt0 into main now, then lose
when calls are nested (because don't handle movm yet).
|
|
(REG_D0, REG_A0, REG_SP): Define.
* simops.c: Implement "add", "addc" and a few other random
instructions.
Starting to simulate instructions for the mn10300. Executes some of
the crt0 code now!
|
|
(crude) hashing works, along with dispatch to the OP_* functions.
|
|
* gencode.c (inst_type): Add mips16 instruction encoding types.
(GETDATASIZEINSN): Define.
(MIPS_DECODE): Add REG flag to dsllv, dsrav, and dsrlv. Add
jalx. Add LEFT flag to mfhi and mflo. Add RIGHT flag to mthi and
mtlo.
(MIPS16_DECODE): New table, for mips16 instructions.
(bitmap_val): New static function.
(struct mips16_op): Define.
(mips16_op_table): New table, for mips16 operands.
(build_mips16_operands): New static function.
(process_instructions): If PC is odd, decode a mips16
instruction. Break out instruction handling into new
build_instruction function.
(build_instruction): New static function, broken out of
process_instructions. Check modifiers rather than flags for SHIFT
bit count and m[ft]{hi,lo} direction.
(usage): Pass program name to fprintf.
(main): Remove unused variable this_option_optind. Change
``*loptarg++'' to ``loptarg++''.
(my_strtoul): Parenthesize && within ||.
* interp.c (sim_trace): If tracefh is NULL, set it to stderr.
(LoadMemory): Accept a halfword pAddr if vAddr is odd.
(simulate): If PC is odd, fetch a 16 bit instruction, and
increment PC by 2 rather than 4.
* configure.in: Add case for mips16*-*-*.
* configure: Rebuild.
|
|
|
|
* configure: Regenerated.
* d10v_sim.h: #include "config.h"
|
|
* gencode.c, interp.c, mn10300_sim.h, simops.c: New files.
Skeleton mn10300 simulator
|
|
|
|
|
|
(SIM_OBJS,SIM_EXTRA_CFLAGS,SIM_EXTRA_CLEAN): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
Call AC_CHECK_HEADERS(unistd.h).
* configure: Regenerated.
* config.in: New file.
* simops.c: #include "config.h". #include <unistd.h> if present.
|
|
(SIM_OBJS,SIM_EXTRA_LIBS): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
Call AC_CHECK_HEADERS(unistd.h).
* configure: Regenerated.
* config.in: New file.
* interp.c: #include "config.h". #include <unistd.h> if present.
(trap): Fetch errno value with callback->get_errno.
|
|
($(TARGETLIB)): Add files from $(LIBCOMMON).
|
|
(SIM_{OBJS,EXTRA_CFLAGS,EXTRA_CLEAN}): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
* configure: Regenerated.
* tconfig.in: New file.
|
|
(SIM_OBJS): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
* configure: Regenerated.
* inst.h (enum sim_state): Define.
(cpu_state_type): New member `state'. Set it whenever `exception'
is set.
* compile.c (sim_callback): New global.
(sim_set_simcache_size): Renamed from sim_csize.
(sim_resume, case O_SLEEP): Add right way to decode r0 but #if 0 out
'cus it can't work. Change main loop exit test to use cpu.state.
(sim_trace): New function.
(sim_stop_reason): Add right way to set results, but #if 0 out.
(sim_size): New function.
(sim_info): Redirect calls to printf_filtered through callback.
(sim_set_callbacks): Record callback.
* run.c: Deleted, using one in ../common now.
* tconfig.in: New file.
|
|
(SIM_{OBJS,EXTRA_LIBS,EXTRA_LIBDEPS,EXTRA_ALL,EXTRA_INSTALL}): Define.
(SIM_{EXTRA_CLEAN,EXTRA_CFLAGS}): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
Call AC_CHECK_HEADERS(stdlib.h).
* configure: Regenerated.
* config.in: New file.
* func.c (sim_set_callbacks): Delete, moved to
* interf.c (sim_set_callbacks): here.
(sim_callback): New global.
Rewrite all calls to printf_filtered to go through callback.
(sim_size,sim_trace): New functions.
(sim_{insert,remove}_breakpoint): #if 0 out.
* sis.c: #include "config.h". #include <stdlib.h> if present.
(main): Coerce fprintf arg to INIT_DISASSEMBLE_INFO to fprintf_ftype.
* sis.h: #include "callback.h".
|
|
|
|
(SIM_OBJS,SIM_EXTRA_CFLAGS,SIM_EXTRA_CLEAN): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
Call AC_CHECK_HEADERS(unistd.h).
* configure: Regenerated.
* config.in: New file.
* interp.c: #include "callback.h".
* simops.c: #include "config.h". #include <unistd.h> if present.
|
|
|
|
(myname): New static global.
(main): Recognize new options -a, -c. Also recognize -h if h8/300.
Only process -c ifdef SIM_HAVE_SIMCACHE.
Only process -p/-s ifdef SIM_HAVE_PROFILE.
Parse program name from argv[0] and use in error messages.
Pass sim_args to sim_open. Pass prog_args to sim_create_inferior.
Add support for incomplete h8/300 termination indicators.
(usage): Make more verbose.
* aclocal.m4,config.in,tconfig.in,configure.in,configure: New files.
* Makefile.in,Make-common.in,callback.c: New files.
* nltvals.def,gentmap.c,gentvals.sh: New files.
|