- 03 Sep, 2005 1 commit
-
-
Benoit Perrot authored
Detect several definitions of the same label in a section. * src/inst/section.hh (register_label): Return false when label is already known in the section, true otherwise. Move implementation to... * src/inst/section.cc, src/inst/Makefile.am: This new file. * src/inst/data_section.hh, src/inst/data_section.cc, * src/inst/text_section.hh, src/inst/text_section.cc (define_label): Propagate status of register_label. * src/inst/program_builder.hh.gen.py: Generate an error when a label is defined more than once. * tests/solve/data-label-already-defined.s, * tests/solve/text-label-already-defined.s, * tests/solve/Makefile.am: Test it.
-
- 31 Jul, 2005 1 commit
-
-
Benoit Perrot authored
Move generators to source directories. * dev/parse-asm-parse-gen.py, dev/parse-asm-scan-gen.py, * dev/inst-solver-gen.py, dev/inst-nodes-gen.py, * dev/inst-builder-gen.py, dev/inst-nodes-mk-gen.py, * dev/doc-inst-set-gen.py: Move to... * src/parse/asm-parse.yy.gen.py, src/parse/asm-scan.ll.gen.py, * src/inst/program_solver.gen.py, src/inst/nodes.gen.py, * src/inst/program_builder.hh.gen.py, src/inst/nodes.mk.gen.py, * doc/inst-set.texi.gen.py: These files (respectively). * src/parse/Makefile.am, src/inst/Makefile.am, doc/Makefile.am, * Makefile.am: Update accordingly.
-
- 02 Apr, 2005 1 commit
-
-
Benoit Perrot authored
Split `exp' files. * src/inst/exp.hh, src/inst/exp.cc: Split into... * src/inst/label_exp.hh, src/inst/label_exp.cc, * src/inst/op_exp.hh, src/inst/op_exp.cc, * src/inst/int_exp.hh, src/inst/exp.hh: These files. * src/inst/Makefile.am: Distribute them. * src/vm/cpu.cc, dev/inst-builder-gen.py, dev/inst-solver-gen.py: Update accordingly.
-
- 08 Mar, 2005 1 commit
-
-
Benoit Perrot authored
Prefer explicit function calls to constructor optional arguments to set non-mandatory attributes (e.g. trace flags). * src/vm/cpu.hh, src/vm/cpu.cc, src/vm/virtual_machine.hh, * dev/inst-builder-gen.py (Cpu, VirtualMachine, ProgramBuilder): Remove uncomprehensible boolean arguments from constructor, add corresponding switches. * src/vm-tasks.cc, src/shell/shell.cc, src/parse/libparse.cc: Update accordingly.
-
- 27 Jan, 2005 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Make LabelExp independent from Label. * src/inst/exp.hh, src/inst/exp.cc: Make LabelExp aggregate a unique_string instead of a Label. * dev/parse-asm-scan-gen.py: Return a unique_string when scanning an identifier (instead of a Label). * dev/parse-asm-parse-gen.py: Update accordingly. * src/inst/section.hh (has_label, get_offset): Wait for a unique_string (instead of a Label). * dev/inst-builder-gen.py, dev/inst-solver-gen.py, * src/vm/virtual_machine.cc, src/shell/shell.cc: Update accordingly.
-
- 26 Jan, 2005 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Let concrete sections choose how to handle labels definitions. * src/inst/section.hh (add_label): Rename as `register_label'. * src/inst/data_section.hh, src/inst/text_section.hh: (add_label): Rename as... (define_label): This, and make it wait for a unique_string and build the label. * dev/parse-asm-scan-gen.py: Return a unique_string on a label definition. * dev/parse-asm-parse-gen.py: Update accordingly. Index: src/inst/data_section.hh --- src/inst/data_section.hh (revision 160) +++ src/inst/data_section.hh (working copy) @@ -54,9 +54,9 @@ } public: - void add_label(Label *label) + void define_label(const misc::unique_string &id) { - Section::add_label(label, size_); + Section::register_label(new inst::Label(id), size_); } public: Index: src/inst/section.hh --- src/inst/section.hh (revision 160) +++ src/inst/section.hh (working copy) @@ -49,7 +49,7 @@ {} protected: - void add_label(Label *label, int offset) + void register_label(Label *label, int offset) { // FIXME: check that this label has not already been added. offsets_[*label] = offset; Index: src/inst/text_section.hh --- src/inst/text_section.hh (revision 160) +++ src/inst/text_section.hh (working copy) @@ -54,9 +54,9 @@ } public: - void add_label(Label *label) + void define_label(const misc::unique_string &id) { - Section::add_label(label, insts_.size() * 4); + Section::register_label(new inst::Label(id), insts_.size() * 4); } public: Index: dev/inst-builder-gen.py --- dev/inst-builder-gen.py (revision 160) +++ dev/inst-builder-gen.py (working copy) @@ -78,14 +78,14 @@ } public: - void add_inst_label(Label *label) + void define_inst_label(const misc::unique_string &id) { - program_->text_section ().add_label(label); + program_->text_section ().define_label(id); } - void add_data_label(Label *label) + void define_data_label(const misc::unique_string &id) { - program_->data_section ().add_label(label); + program_->data_section ().define_label(id); } public: Index: dev/parse-asm-scan-gen.py --- dev/parse-asm-scan-gen.py (revision 160) +++ dev/parse-asm-scan-gen.py (working copy) @@ -71,7 +71,7 @@ dec_int [0-9]+ hex_int 0x[0-9A-Fa-f]+ -label [a-zA-Z_][a-zA-Z_0-9]* +id [a-zA-Z_][a-zA-Z_0-9]* %% %{ @@ -144,14 +144,14 @@ } -{label} { +{id} { yylval->label = new inst::Label (yytext); return LABEL; } -{label}\":\" { +{id}\":\" { std::string label = yytext; label.resize(yyleng - 1); - yylval->label = new inst::Label (label); + yylval->id = &misc::unique_string::create(label); return LABEL_DEF; } Index: dev/parse-asm-parse-gen.py --- dev/parse-asm-parse-gen.py (revision 160) +++ dev/parse-asm-parse-gen.py (working copy) @@ -75,6 +75,7 @@ { int i; std::string *s; + const misc::unique_string *id; inst::Label *label; inst::Register *reg; inst::Exp *exp; @@ -84,7 +85,7 @@ %} %token <label> LABEL \"label\" -%token <label> LABEL_DEF \"label definition\" +%token <id> LABEL_DEF \"label definition\" %token <i> INTEGER \"integer\" %token <s> STRING \"string\" %token <reg> REGISTER \"register\" @@ -138,7 +139,7 @@ data // Label : LABEL_DEF -{ program_builder.add_data_label($1); } +{ program_builder.define_data_label(*$1); } // Uninitialized space | DIR_SPACE INTEGER @@ -169,7 +170,7 @@ instruction // Label : LABEL_DEF -{ program_builder.add_inst_label($1); } +{ program_builder.define_inst_label(*$1); } // Opcodes"""
-
- 25 Oct, 2004 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Participate to "builddir != srcdir" compilation. * dev/inst-builder-gen.py, * dev/inst-nodes-gen.py, * dev/inst-solver-gen.py, * dev/doc-inst-set-gen.py, * dev/parse-asm-scan-gen.py, * dev/parse-asm-parse-gen.py: Ask for a directory where the files have to be generated. * src/parse/Makefile.am, * src/inst/Makefile.am, * doc/Makefile.am: Specify the directory where to generate.
-
- 26 Sep, 2004 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Add data storage directives. * dev/parse-asm-scan-gen.py, dev/parse-asm-parse-gen.py: Add `.byte', .half', `.ascii' directives. * dev/inst-builder-gen.py: Implement new directives. * src/inst/data_section.hh: Move `.asciiz' implementation to program_builder.hh.
-
- 03 Jun, 2004 1 commit
-
-
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.
-
- 08 May, 2004 2 commits
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> * NEWS, * dev/inst-builder-gen.py, * 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.cc, src/shell/shell.hh, * tests/good/Makefile.am, tests/good/check-good * tests/runtime/check-runtime, * tests/unlimited/Makefile.am, tests/unlimited/check-unlimited: Rename `--fill-delay-slots' to `--nop-after-branch', which is more accurate. Reserve `--fill-delay-slots' for optimal delay slots filling.
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> * src/inst/register.hh: Add a copy constructor. * dev/inst-nodes-gen.py: Copy inst::Registers instead of keeping a pointer on them, avoiding hazardous memory manipulations. * dev/inst-builder-gen.py, src/inst/program_builder.cc, * src/vm/cpu.cc (bubble_): Prefer copy to reallocation of inst::Registers. * dev/parse-asm-parse-gen.py: Once they are copied, delete the inst::Registers created by the scanner.
-
- 28 Mar, 2004 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Homogenize attribute names. * dev/inst-builder-gen.py, src/inst/program_builder.cc, * src/inst/data_section.hh, src/inst/data_section.cc, * src/inst/exp.hh, src/inst/exp.cc, * src/inst/label.cc, src/inst/label.hh, * src/inst/program.hh, * src/inst/program_solver.hh, * src/inst/register.hh, * src/inst/section.hh, * src/inst/text_section.hh, src/inst/text_section.cc, * src/misc/deref.hh, src/misc/escape.hh, * src/task/task.cc, src/task/task.hh * src/task/task_register.cc, src/task/task_register.hh * src/vm/cpu.hh, src/vm/cpu.cc * src/vm/memory.hh, src/vm/segment.hh, * src/vm/table.hh, * src/vm/virtual_machine.hh: Rename... (_program, fill_delay_slot_p, _size, bytes, immediate, integer) (label, kind, left, right, set, set_node, _text_section, _data_section) (_pc, _program, kind, index, labels, offsets, insts, postr, s) (print_delim, _long_opt, _short_opt, _module, _description) (dependencies, _execute, _modules, _tasks, _enabled_tasks, mmu, GPR) (hi, lo, pc, unlimited, halt, istr, ostr, call_stack) (check_callee_save_p, trace_p, bubble, pipeline, heap, stack) (stack_top, _size, _bytes, _scopes, memory, mmu, cpu) as... (program_, fill_delay_slot_p_, size_, bytes_, immediate_, integer_) (label_, kind_, left_, right_, set_, set_node_, text_section_) (data_section_, pc_, program_, kind_, index_, labels_, offsets_) (insts_, postr_, s_, print_delim_, long_opt_, short_opt_, module_) (description_, dependencies_, execute_, modules_, tasks_) (enabled_tasks_, mmu_, GPR_, hi_, lo_, pc_, unlimited_, halt_, istr_) (ostr_, call_stack_, check_callee_save_p_, trace_p_, bubble_) (pipeline_, heap_, stack_, stack_top_, size_, bytes_, scopes_) (memory_, mmu_, cpu_)
-
- 29 Feb, 2004 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Track memory leaks. * dev/inst-builder-gen.py, * dev/inst-nodes-gen.py, * dev/mipsy.xml, * dev/parse-asm-parse-gen.py, * src/inst/data_section.hh, * src/inst/exp.hh, * src/inst/program_builder.cc, * src/inst/section.hh, * src/inst/text_section.hh, * src/vm/cpu.hh, src/vm/cpu.cc * src/vm/segment.hh, * src/vm/vm-tasks.cc: Use pointers instead of references for each allocated attribute, and delete them.
-
- 24 Feb, 2004 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> * dev/doc-inst-set-gen.py, * dev/inst-builder-gen.py, * dev/inst-makefile-gen.py, * dev/inst-nodes-gen.py, * dev/mipsy.py, * dev/mipsy.xml, * dev/parse-asm-parse-gen.py, * dev/parse-asm-scan-gen.py, * src/common.hh, * src/mipsy-tasks.cc, src/mipsy-tasks.hh, * src/mipsy.cc, * src/modules.hh, * src/inst/data_section.hh, * src/inst/exp-visitor.hh, * src/inst/exp.hh, * src/inst/inst-tasks.cc, src/inst/inst-tasks.hh, * src/inst/inst.hh, * src/inst/label.cc, src/inst/label.hh, * src/inst/program.hh, * src/inst/program_builder.cc, * src/inst/program_solver.hh, * src/inst/register.hh, * src/inst/section.hh, * src/inst/text_section.hh, * src/parse/asm-scan.hh, * src/parse/libparse.cc, src/parse/libparse.hh, * src/parse/parse-tasks.cc, src/parse/parse-tasks.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/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: Update Copyright. Suggested by Akim Demaille.
-
- 16 Jan, 2004 1 commit
-
-
Benoit Perrot authored
--- ChangeLog Thu, 15 Jan 2004 17:46:59 +0100 noe (mipsy/2_ChangeLog 1.64 604) +++ ChangeLog Thu, 15 Jan 2004 20:46:42 +0100 noe (mipsy/2_ChangeLog 1.64 604) @@ -1,5 +1,17 @@ 2004-01-15 Benoît Perrot <benoit@lrde.epita.fr> + * dev/doc-inst-set-gen.py, + * dev/inst-builder-gen.py, + * dev/inst-makefile-gen.py, + * dev/inst-nodes-gen.py, + * dev/parse-asm-parse-gen.py, + * dev/parse-asm-scan-gen.py, + * src/parse/Makefile.am, + * bootstrap: + Use lazy overwrite to limit file building. + +2004-01-15 Benoît Perrot <benoit@lrde.epita.fr> + * dev/mipsy.xml: Describe each instruction. * dev/doc-inst-set-gen.py: New file. * Makefile.am: Distribute it.
-
- 12 Jan, 2004 1 commit
-
-
Benoit Perrot authored
--- ChangeLog Mon, 12 Jan 2004 17:38:59 +0100 noe (mipsy/2_ChangeLog 1.59 604) +++ ChangeLog Mon, 12 Jan 2004 18:35:36 +0100 noe (mipsy/2_ChangeLog 1.59 604) @@ -1,5 +1,12 @@ 2004-01-12 Benoît Perrot <benoit@lrde.epita.fr> + * dev/inst-builder-gen.py, + * src/inst/program_builder.cc: + Prepare delay slots support by adding NOPs after native branches + of complex instructions. + +2004-01-12 Benoît Perrot <benoit@lrde.epita.fr> + * src/vm/cpu.hh, * src/vm/memory.hh, * src/vm/mmu.hh,
-
- 10 Jan, 2004 1 commit
-
-
Benoit Perrot authored
--- ChangeLog Thu, 08 Jan 2004 15:27:18 +0100 noe (mipsy/2_ChangeLog 1.54 604) +++ ChangeLog Sat, 10 Jan 2004 22:21:15 +0100 noe (mipsy/2_ChangeLog 1.54 604) @@ -1,3 +1,13 @@ +2004-01-10 Benoît Perrot <benoit@lrde.epita.fr> + + * dev/mipsy.xml: Use a better DTD. + * dev/mipsy.py: Use new DTD. + * dev/inst-builder-gen.py, + * dev/inst-nodes-gen.py, + * dev/parse-asm-parse-gen.py, + * dev/parse-asm-scan-gen.py: + Use new mipsy.py package. +
-
- 08 Jan, 2004 1 commit
-
-
Benoit Perrot authored
--- ChangeLog Tue, 06 Jan 2004 18:57:53 +0100 noe (mipsy/2_ChangeLog 1.52 604) +++ ChangeLog Thu, 08 Jan 2004 14:39:59 +0100 noe (mipsy/2_ChangeLog 1.52 604) @@ -1,3 +1,19 @@ +2004-01-08 Benoît Perrot <benoit@lrde.epita.fr> + + * 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. +
-
- 06 Jan, 2004 1 commit
-
-
Benoit Perrot authored
--- ChangeLog Sat, 11 Oct 2003 15:48:01 +0200 benoit (mipsy/2_ChangeLog 1.51 644) +++ ChangeLog Tue, 06 Jan 2004 18:56:55 +0100 noe (mipsy/2_ChangeLog 1.51 644) @@ -1,3 +1,10 @@ +2004-01-06 Benoît Perrot <benoit@lrde.epita.fr> + + * 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. +
-
- 29 Jul, 2003 1 commit
-
-
Benoit Perrot authored
-
- 04 Jul, 2003 1 commit
-
-
Benoit Perrot authored
-
- 03 Jul, 2003 1 commit
-
-
Benoit Perrot authored
-
- 02 Apr, 2003 1 commit
-
-
Benoit Perrot authored
-
- 03 Jul, 2003 1 commit
-
-
Benoit Perrot authored
-