2004-01-08 Benoît Perrot * dev/mipsy-parser-gen.py: Move to... * dev/parse-asm-parse-gen.py: ... this file. * dev/mipsy-scanner-gen.py: Move to... * dev/parse-asm-scan-gen.py: ... this file. * src/parse/Makefile.am: Use new files' names. * dev/mipsy-builder-gen.py: Move to... * dev/inst-builder-gen.py: ... this file. * dev/mipsy-inst-gen.py: Move to... * dev/inst-nodes-gen.py: ... this file. * dev/mipsy-mk-inst-gen.py: Move to... * dev/inst-makefile-gen.py: ... this file. Use new files' names. * bootstrap, Makefile.am: Use new files' names. 2004-01-06 Benoît Perrot * dev/mipsy.py: Add lazy_overwrite and comments. * dev/mipsy-builder-gen.py, dev/mipsy-mk-inst-gen.py, * dev/mipsy-parser-gen.py, dev/mipsy-scanner-gen.py: Limit function importations. 2003-10-11 Benoît Perrot * src/vm/cpu.hh, src/vm/virtual_machine.hh, src/vm/vm-tasks.cc: Make the CPU responsible of its instruction flow. 2003-10-11 Benoît Perrot * src/vm/cpu.hh, src/vm/cpu.cc: Uniformize register accessors, removing deprecated ones. 2003-09-08 Benoît Perrot * src/vm/memory.hh: Increase default stack size to 512 Ko. 2003-09-04 Benoît Perrot * Makefile.am: Do not distribute license.hh. 2003-08-21 Benoît Perrot Make the Cpu responsible of the execution of instructions ; the VirtualMachine must be seen as a motherboard that could support more than one Cpu. * src/vm/virtual_machine.cc: Move to... * src/vm/cpu.cc: here. * src/vm/Makefile.am: Propagate it. * src/vm/virtual_machine.hh: Move execution interface to... * src/vm/cpu.hh: here. 2003-08-20 Benoît Perrot * dev/mipsy.xml: Add mul with immediate pseudo-instruction. * src/inst/program_builder.cc: Expand it. 2003-08-19 Benoît Perrot * dev/mipsy-scanner-gen.py: Accept a quoted character as an integer value. 2003-08-14 Benoît Perrot * configure.ac, NEWS: Release 0.4, bump to 0.5. * Makefile.am: Distribute bootstrap. 2003-08-13 Benoît Perrot * tests/good/check-good, * tests/lexical/check-lexical, * tests/runtime/check-runtime, * tests/solve/check-solve, * tests/syntax/check-syntax, * tests/unlimited/check-unlimited: Distribute sub scripts. 2003-08-13 Benoît Perrot * src/vm/virtual_machine.cc (syscall): Look for $a0 as argument of exit syscall. * tests/good/add-sub.s, * tests/good/and-or-nor-xor.s, * tests/good/exit.s, * tests/good/extended-euclide.s, * tests/good/gtcd.s, * tests/good/modular-exponent.s, * tests/good/neg.s, * tests/good/not.s, * tests/good/print.s, * tests/good/print_int.s, * tests/good/read_int.s, * tests/good/seq-sne.s, * tests/good/shift.s, * tests/runtime/neg.s, * tests/runtime/no-main.s, * tests/solve/undefined-labels.s, * tests/syntax/asciiz-wrong-param.s, * tests/syntax/too-many-operands.s, * tests/unlimited/simple-exp.s: Use exit(0). 2003-08-11 Benoît Perrot * tests/Makefile.am: Distribute tests machinery. * tests/common.mk: Distribute variables and rules used by the test suite. * tests/generate-ref.mk: Distribute reference output files generators. * tests/mipsy-check: Distribute main test script. * tests/lexical/invalid-string-hexa.s, * tests/lexical/invalid-string-octal.s, * tests/lexical/unlimited-regs.s, * tests/lexical/unrecognized-escape.s, * tests/lexical/unterminated-string.s, * tests/lexical/Makefile.am: Distribute tests that fail at scan level. * tests/syntax/too-many-operands.s, * tests/syntax/asciiz-wrong-param.s, * tests/syntax/Makefile.am: Distribute tests that fail at parse level. * tests/solve/undefined-labels.s, * tests/solve/Makefile.am: Distribute tests that fail at solve-time. * tests/runtime/abs.s, * tests/runtime/neg.s, * tests/runtime/no-main.s, * tests/runtime/Makefile.am: Distribute tests that fail at run-time. * tests/unlimited/simple-exp.s, * tests/unlimited/Makefile.am: Distribute tests that use unlimited registers. * tests/good/add-sub.s, * tests/good/and-or-nor-xor.s, * tests/good/exit.s, * tests/good/extended-euclide.s, * tests/good/gtcd.s, * tests/good/modular-exponent.s, * tests/good/neg.s, * tests/good/not.s, * tests/good/print.s, * tests/good/print_int.s, * tests/good/read_int.s, tests/good/read_int.in, * tests/good/seq-sne.s, * tests/good/shift.s, * tests/good/Makefile.am: Distribute tests that execute normally. * configure.ac, Makefile.am: Distribute tests suite. 2003-07-29 Benoît Perrot * dev/mipsy.xml, src/inst/program_builder.cc: Normalize move to addu. 2003-07-29 Benoît Perrot * dev/mipsy-builder-gen.py, * src/parse/libparse.hh, src/parse/libparse.cc, * src/parse/parse-tasks.hh, src/parse/parse-tasks.cc: Fill delay slot of native branch instructions with NOP. * NEWS: Update. 2003-07-29 Benoît Perrot * configure.ac: Bump to 0.4. 2003-07-29 Benoît Perrot * src/task/task_register.cc: Fix usage display. 2003-07-29 Benoît Perrot * dev/mipsy.xml, dev/mips.py: Specify instruction kind. 2003-07-29 Benoît Perrot * dev/mipsy-scanner-gen.py, * src/parse/libparse.hh, src/parse/libparse.cc, * src/parse/parse-tasks.hh, src/parse/parse-tasks.cc: Make unlimited registers optional. 2003-07-29 Benoît Perrot * src/task/task_register.hh (parse_args): Do not search beyond map's end. 2003-07-28 Benoît Perrot * NEWS: Describe main version changes. 2003-07-27 Benoît Perrot * src/task/task_register.hh, src/task/task_register.cc: Disambiguate uncomplete options. Clean usage display. * src/mipsy.cc: Launch "--execute" if no option is specified. 2003-07-26 Benoît Perrot * dev/mipsy-mk-inst-gen.py: Distribute section.hh. 2003-07-20 Benoît Perrot * src/vm/virtual_machine.hh, src/vm/virtual_machine.cc, * src/vm/vm-tasks.hh, src/vm/vm-tasks.cc: Check preservation of callee save registers on demand. * src/parse/parse-tasks.cc: Remove useless includes. * TODO: Update. 2003-07-18 Benoît Perrot * src/inst/register.hh, src/vm/cpu.hh: Move general register indices from Register.hh into Cpu. * src/inst/program_builder.cc, * dev/mipsy.xml, dev/mipsy-parser-gen.py, dev/mipsy-scanner-gen.py: Adjust. 2003-07-18 Benoît Perrot * src/vm/cpu.hh: Add a checker for unlimited register existence. 2003-07-17 Benoît Perrot * src/vm/memory.hh: stack_size is an argument of Memory constructor. 2003-07-17 Benoît Perrot * src/vm/virtual_machine.hh: (step) Return a boolean that indicates the end of the execution. 2003-07-17 Benoît Perrot * src/vm/memory.hh: Add accessors for heap and stack sizes. 2003-07-17 Benoît Perrot * src/inst/section.hh: Export types. * src/vm/virtual_machine.cc, src/vm/virtual_machine.hh: Use variable input and output streams. 2003-07-17 Benoît Perrot * src/inst/section.hh: Add a const accessor to Section's labels. 2003-07-12 Benoît Perrot * src/inst/section.hh, * src/inst/data_section.hh, src/inst/text_section.hh: Factor Section code. 2003-07-11 Benoît Perrot * config/depcomp, config/install-sh, config/missing, * config/mkinstalldirs: Remove auto-generated files. 2003-07-11 Benoît Perrot * configure.ac: Bump to 0.3. 2003-07-11 Benoît Perrot * src/vm/virtual_machine.cc: Set exit_status to exit_runtime when an exception occurs. 2003-07-11 Benoît Perrot * src/vm/virtual_machine.hh, src/vm/virtual_machine.cc: Define and use a step of execution. * src/common.hh, src/vm/vm-tasks.cc: Adjust. 2003-07-11 Benoît Perrot * dev/mipsy-scanner-gen.py, * src/inst/register.hh, src/vm/cpu.hh: Use a register vector for general purpose registers. * src/vm/virtual_machine.cc: Adjust. 2003-07-10 Benoît Perrot * dev/mipsy.xml, src/inst/program_solver.hh, src/vm/virtual_machine.hh: Normalize nop to sll zero, zero, 0. 2003-07-07 Benoît Perrot * bootstrap, dev/mipsy-mk-inst-gen.py: Generate src/inst/Makefile.am at bootstrap. 2003-07-07 Benoît Perrot * src/task/task.hh: Remove useless ";" at end of macro definitions. 2003-07-07 Benoît Perrot * dev/mipsy.xml, * src/inst/program_builder.cc, * src/inst/program_solver.hh, * src/vm/cpu.hh, * src/vm/virtual_machine.hh, src/vm/virtual_machine.cc: Use HI and LO register to execute div, divu, rem, remu. 2003-07-06 Benoît Perrot * src/vm/virtual_machine.cc: read_string stops after an OEF or a newline; if a newline is read, it is stored into the buffer. 2003-07-05 Benoît Perrot * dev/mipsy.xml, * src/inst/program_builder.cc, src/inst/program_solver.hh, * src/vm/virtual_machine.hh, src/vm/virtual_machine.cc: Support more comparison instructions. Implement shift (logical and arithmetical) and rotate. Add some syntaxes to branch instructions. 2003-06-29 Benoît Perrot * dev/mipsy.xml, src/inst/program_builder.cc: Use gcc's expansion of complex and pseudo instructions. * src/vm/virtual_machine.cc: Check overflow in Sub. 2003-06-29 Benoît Perrot * dev/mipsy-parser-gen.py: Allow expression for destination of branch instructions. * dev/mipsy-inst-gen.py: Generate an Exp& variable for a label. * src/inst/program_builder.cc, src/inst/program_solver.hh, * src/vm/virtual_machine.cc, Adjust. 2003-06-29 Benoît Perrot * doc/mipsy.texi: Add some comments on internal. 2003-06-29 Benoît Perrot * src/vm/virtual_machine.hh: Display a dedicated error message when the main label can not be found. 2003-06-29 Benoît Perrot * dev/mipsy.xml, dev/mipsy.py: Allow level of instruction override in syntax. Rename "neg" as "negu". * dev/mipsy-builder-gen.py: Adjust. * src/inst/program_builder.cc: Support more syntaxes on branch instructions, support neg. * src/vm/virtual_machine.cc: Adjust overflow detection. 2003-06-29 Benoît Perrot * dev/mipsy-parser-gen.py, dev/mipsy-scanner-gen.py, * dev/mipsy-builder-gen.py, dev/mipsy.py, dev/mipsy.xml * src/common.hh, src/modules.hh, * src/mipsy-tasks.hh, src/mipsy-tasks.cc, src/mipsy.cc, * src/inst/data_section.hh, * src/inst/exp-visitor.hh, * src/inst/exp.hh, * src/inst/inst.hh, * src/inst/program.hh, * src/inst/program_builder.cc, * src/inst/program_solver.hh, * src/inst/register.hh, * src/inst/text_section.hh, * src/parse/asm-scan.hh, * src/parse/libparse.hh, src/parse/libparse.hh, * src/parse/parse-tasks.hh, src/parse/parse-tasks.cc, * src/task/task-tasks.hh, src/task/task-tasks.cc, * src/task/task.cc, src/task/task.hh, * src/task/task_register.hh, src/task/task_register.cc, * src/vm/cpu.hh, * src/vm/memory.hh, * src/vm/segment.hh, * src/vm/table.hh, * src/vm/virtual_machine.hh, src/vm/virtual_machine.cc, * src/vm/vm-tasks.hh, src/vm/vm-tasks.cc: Add license. 2003-06-29 Benoît Perrot * doc/mipsy.texi, doc/fdl.texi, doc/Makefile.am, * configure.ac: Begin documentation effort. 2003-06-29 Benoît Perrot * Makefile.am, src/Makefile.am, src/misc/Makefile.am, * src/parse/Makefile.am, src/task/Makefile.am, src/vm/Makefile.am: Support automatic generation. * README: Document it. 2003-06-29 Benoît Perrot * vm/table.hh, cpu.hh: Allow unlimited registers. * vm/memory.hh: New. * vm/segment.hh: New. * vm/virtual_machine.{hh, cc}: Implement instructions. 2003-06-29 Benoît Perrot * dev/mipsy-builder-gen.py: Use MIPS instruction set to generate ProgramBuilder. * src/inst/program_builder.cc: Implement complex opcodes expansion. * dev/mipsy-parser-gen.py: Use ProgramBuilder. 2003-06-28 Benoît Perrot * src/inst/{data, text}_section.hh: New. * src/inst/program.hh: New. * src/inst/visitor.hh: New. * src/inst/program_solver.hh: New. 2003-06-28 Benoît Perrot * src/inst/inst.hh: New. * dev/mipsy-inst-gen.py: Use MIPS instruction set to generate Inst class declarations. 2003-06-28 Benoît Perrot * src/inst/register.hh: New. * src/inst/Makefile.am, src/Makefile.am Distribute and compile 'inst' module. * src/inst/label.{hh, cc}: New. * src/inst/Makefile.am, src/Makefile.am: Distribute and compile labels. * src/parse/asm-{scan.ll, parse.yy}: Use labels and registers. 2003-06-27 Benoît Perrot * src/misc/: Add miscellaneous helpers. * src/misc/Makefile.am, src/Makefile.am: Distribute and compile 'misc' module. * src/parse/asm-{scan.ll, parse.yy}: Use misc helpers. 2003-06-27 Benoît Perrot * dev/mipsy.xml: Add MIPS instruction set xml file. * dev/mipsy.py: Add MIPS instruction set xml parser. * dev/mipsy-{scanner, parser}-gen.py: Use MIPS instruction set to generate flex and bison files. * src/parse/Makefile.am, src/Makefile.am: Distribute and compile 'parse' module. 2003-06-27 Benoît Perrot * ./, ./dev/, ./src/, ./src/parse/: Create development tree. * ./config/, configure.ac, Makefile.am: Use autotools. * src/mipsy.cc: Add dummy driver.