1. 08 Jan, 2006 3 commits
    • Benoit Perrot's avatar
      2006-01-08 Benoît Perrot <benoit@lrde.epita.fr> · 5ce2b34b
      Benoit Perrot authored
      	Control coprocessor has the system library
      
      	* src/vm/cp0.hh, src/vm/cp0.hxx:
      	(set_system_library) New.
      	(raise_syscall) Invoke system library if any.
      	* src/vm/cpu.hh, src/vm/cpu.hxx:
      	(set_system_library) Remove.
      	* src/vm/cpu.cc:
      	(syscall) Raise a syscall exception through cp0.
      	* src/vm/virtual_machine.hh, src/vm/virtual_machine.hxx:
      	(get_cp0) New non-const accessor.
      	(set_system_library) Remove.
      	* src/vm-tasks.cc:
      	Access cp0 to set system library.
      
      5ce2b34b
    • Benoit Perrot's avatar
      2006-01-08 Benoît Perrot <benoit@lrde.epita.fr> · ccb4add9
      Benoit Perrot authored
      	Do not call exit_set inside control coprocessor
      
      	* src/vm/cp0.hh, src/vm/cp0.hxx:
      	(get_register) New.
      	(raise_overflow, raise_addr_load, raise_addr_store): Activate
      	fatal_exception_, remove call to exit_set.
      	* src/vm/virtual_machine.cc:
      	(execute) Use exit_set to report internal exception.
      
      ccb4add9
    • Benoit Perrot's avatar
      2006-01-08 Benoît Perrot <benoit@lrde.epita.fr> · 883f5fac
      Benoit Perrot authored
      	Move inline implementations from .hh files to .hxx
      
      	* src/inst/register.hh,
      	* src/inst/label.hh,
      	* src/inst/text_label.hh,
      	* src/inst/exp.hh,
      	* src/inst/int_exp.hh,
      	* src/inst/label_exp.hh,
      	* src/inst/op_exp.hh,
      	* src/inst/inst.hh,
      	* src/inst/section.hh,
      	* src/inst/data_section.hh,
      	* src/inst/text_section.hh,
      	* src/inst/program.hh,
      	* src/inst/program_builder.hh.gen.py,
      	* src/inst/program_solver.gen.py,
      	* src/vm/cp0.hh,
      	* src/vm/cpu.hh,
      	* src/vm/mmu.hh,
      	* src/vm/memory.hh,
      	* src/vm/segment.hh,
      	* src/vm/system_library.hh,
      	* src/vm/spim_system_library.hh,
      	* src/vm/nolimips_system_library.hh,
      	* src/vm/virtual_machine.hh,
      	* src/shell/cmd.hh,
      	* src/shell/shell.hh,
      	* src/task/task.hh,
      	* src/task/task_register.hh:
      	Split into...
      	* src/inst/register.hxx,
      	* src/inst/label.hxx, src/inst/label.cc,
      	* src/inst/text_label.hxx, src/inst/text_label.cc,	
      	* src/inst/exp.hxx, src/inst/exp.cc,
      	* src/inst/int_exp.hxx, src/inst/int_exp.cc,
      	* src/inst/label_exp.hxx, src/inst/label_exp.cc,
      	* src/inst/op_exp.hxx, src/inst/op_exp.cc,
      	* src/inst/inst.hxx, src/inst/inst.cc,
      	* src/inst/section.hxx, src/inst/section.cc,	
      	* src/inst/data_section.hxx, src/inst/data_section.cc,
      	* src/inst/text_section.hxx, src/inst/text_section.cc,
      	* src/inst/program.hxx,
      	* src/inst/program_builder.hxx,
      	* src/inst/program_solver.hxx,
      	* src/vm/cp0.hxx,
      	* src/vm/cpu.hxx, src/vm/cpu.cc,
      	* src/vm/mmu.hxx,
      	* src/vm/memory.hxx,
      	* src/vm/segment.hxx,
      	* src/vm/system_library.hxx, src/vm/system_library.cc,
      	* src/vm/spim_system_library.hxx, src/vm/spim_system_library.cc,
      	* src/vm/nolimips_system_library.hxx, src/vm/nolimips_system_library.cc,
      	* src/vm/virtual_machine.hxx, src/vm/virtual_machine.cc,
      	* src/shell/cmd.hxx,
      	* src/shell/shell.hxx, src/shell/shell.cc,
      	* src/task/task.hxx, src/task/task.cc,
      	* src/task/task_register.hxx, src/task/task_register.cc:
      	... These files, respectively.
      	* src/inst/Makefile.am,
      	* src/shell/Makefile.am,
      	* src/task/Makefile.am,
      	* src/vm/Makefile.am:
      	Update accordingly.
      
      	* src/inst/exp-visitor.hh:
      	Use fwd.hh
      	* src/task-tasks.cc, src/nolimips-tasks.cc:
      	Include task_register.hh
      	* src/task/boolean_task.hh,
      	* src/task/function_task.hh,
      	* src/task/int_task.hh,
      	* src/task/string_task.hh:
      	Homogeneize coding style.
      
      883f5fac
  2. 24 Sep, 2005 1 commit
    • Benoit Perrot's avatar
      2005-09-24 Benoît Perrot <benoit@lrde.epita.fr> · 902282e4
      Benoit Perrot authored
      	Introduce system libraries.
      
      	* src/vm/cpu.hh, src/vm/cpu.cc:
      	Export mmu and cp0. Move syscalls' implementation to...
      	* src/vm/system_library.hh, src/vm/system_library.cc,
      	* src/vm/spim_system_library.hh, src/vm/spim_system_library.hxx,
      	* src/vm/spim_system_library.cc:
      	These new files.
      	* src/vm/cp0.hh: Export fatal_exception flag.
      	* src/vm/Makefile.am: Update accordingly.
      	* src/vm/virtual_machine.hh, src/vm/virtual_machine.cc:
      	Propagate system library to cpu.
      	* src/vm-tasks.cc: 
      	Give a default system library to virtual machine.
      
      902282e4
  3. 11 Jan, 2005 1 commit
    • Benoit Perrot's avatar
      Index: ChangeLog · 31407288
      Benoit Perrot authored
      from  Benoît Perrot  <benoit@lrde.epita.fr>
      2005-01-08  Benoît Perrot  <benoit@lrde.epita.fr>
      
      	Migrate to bison2.0a.
      	
      	* dev/parse-asm-parse-gen.py: Call the parser with a filename and
      	a program builder instead of using global variables. Use bison's
      	builtin system to print token values. Remove global program builder.
      	* dev/parse-asm-scan-gen.py: Remove global string for file name. 
      	Use yy::location instead of yy::Location.
      	* src/parse/asm-scan.hh: Call the scanner with a trace flag.
      	* src/parse/libparse.hh, src/parse/libparse.cc:
      	Declare trace flags as booleans. 
      	* src/vm/cp0.hh: Include common.hh to get exit_set.
      
      31407288
  4. 15 Jul, 2004 1 commit
    • Benoit Perrot's avatar
      Index: ChangeLog · d01d0c82
      Benoit Perrot authored
      from  Benoît Perrot  <benoit@lrde.epita.fr>
      
      	* src/vm/memory.hh, src/vm/mmu.hh, src/vm/virtual_machine.cc:
      	Make the MMU responsible of address translation and exception 
      	raising.
      	* src/vm/cp0.hh (raise_addr_load, raise_addr_store): Add address
      	load and store exception.
      	* src/vm/virtual_machine.hh (execute): Stop execution on fatal
      	exceptions.
      
      d01d0c82
  5. 03 Jun, 2004 1 commit
    • Benoit Perrot's avatar
      Index: ChangeLog · 8d8a0d8d
      Benoit Perrot authored
      from  Benoît Perrot  <benoit@lrde.epita.fr>
      
      	Bump to nolimips-0.7
      
      	* INSTALL, README, TODO,
      	* Makefile.am, bootstrap,
      	* configure.ac,
      	* dev/doc-inst-set-gen.py, dev/inst-builder-gen.py,
      	* dev/inst-makefile-gen.py, dev/inst-nodes-gen.py,
      	* dev/inst-solver-gen.py, dev/nolimips.py,
      	* dev/nolimips.xml, dev/parse-asm-parse-gen.py,
      	* dev/parse-asm-scan-gen.py,
      	* doc/Makefile.am, doc/macros.texi,
      	* src/Makefile.am, src/common.hh, src/modules.hh,
      	* src/inst/section.hh,
      	* src/inst/data_section.hh, src/inst/data_section.cc
      	* src/inst/text_section.hh, src/inst/text_section.cc,
      	* src/inst/program.hh, src/inst/program_builder.cc,
      	* src/inst/exp-visitor.hh, src/inst/exp.hh, src/inst/exp.cc
      	* src/inst/inst-tasks.cc, src/inst/inst-tasks.hh, 
      	* src/inst/inst.hh, src/inst/label.cc, src/inst/label.hh
      	* src/inst/register.hh,
      	* src/parse/Makefile.am, src/parse/asm-scan.hh,
      	* src/parse/libparse.cc, src/parse/libparse.hh,
      	* src/parse/parse-tasks.cc, src/parse/parse-tasks.hh,
      	* src/shell/cmd.hh,
      	* src/shell/shell-tasks.cc, src/shell/shell-tasks.hh,
      	* src/shell/shell.cc, src/shell/shell.hh,
      	* src/task/task-tasks.cc, src/task/task-tasks.hh,
      	* src/task/task.cc, src/task/task.hh,
      	* src/task/task_register.cc, src/task/task_register.hh,
      	* src/vm/cp0.hh, src/vm/cpu.hh, src/vm/cpu.cc
      	* src/vm/memory.hh, src/vm/mmu.hh, src/vm/segment.hh
      	* src/vm/table.hh, src/vm/virtual_machine.hh
      	* src/vm/vm-tasks.cc, src/vm/vm-tasks.hh
      	* tests/Makefile.am, tests/generate-ref.mk, tests/good/check-good
      	* tests/good/fact.s, tests/lexical/check-lexical,
      	* tests/runtime/check-runtime, tests/solve/check-solve
      	* tests/syntax/check-syntax, tests/unlimited/check-unlimited:
      	Rename mipsy as nolimips.
      
      	* dev/mipsy.py, dev/mipsy.xml,
      	* doc/mipsy.texi,
      	* src/mipsy.cc, src/mipsy-tasks.cc, src/mipsy-tasks.hh,
      	* tests/mipsy-check:
      	Move to...
      	* dev/nolimips.py, dev/nolimips.xml,
      	* doc/nolimips.texi,
      	* src/nolimips.cc, src/nolimips-tasks.cc, src/nolimips-tasks.hh,
      	* tests/nolimips-check:
      	These new files.
      
      	* NEWS, configure.ac:
      	Bump to nolimips-0.7.
      
      8d8a0d8d
  6. 25 Apr, 2004 1 commit
    • Benoit Perrot's avatar
      Index: ChangeLog · bd66c316
      Benoit Perrot authored
      from  Benoît Perrot  <benoit@lrde.epita.fr>
              Use coprocessor to raise exception.
      
              * src/vm/cp0.hh:
              (raise_overflow) Raise an arithmetic overflow exception.
              * src/vm/cpu.cc:
              Call raise_overflow when an arithmetic overflow occurs.
      
      bd66c316
  7. 04 Apr, 2004 1 commit
    • Benoit Perrot's avatar
      Index: ChangeLog · 3b12f953
      Benoit Perrot authored
      from  Benoît Perrot  <benoit@lrde.epita.fr>
              * src/vm/cp0.hh:
              Add control coprocessor.
              * src/vm/Makefile.am:
              Distribute it.
              * src/vm/cpu.hh, src/vm/cpu.cc,
              * src/vm/virtual_machine.hh:
              Use control coprocessor.
              * dev/mipsy.py,
              * dev/mipsy.xml:
              Add instructions to move registers to/from control coprocessor.
              * dev/inst-solver-gen.py,
              Check register identifiers for control coprocessor instructions.
      
      3b12f953