- 07 Jan, 2006 1 commit
-
-
Benoit Perrot authored
Print a generated-file warning at the beginning of generated files. Suggested by Roland Levillain. * dev/nolimips.py (generated_by_hand): Add warning string. * 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, Print warning right after license. * src/inst/nodes.mk.gen.py: Remove a useless import.
-
- 02 Jan, 2006 1 commit
-
-
Roland Levillain authored
Prepare for Bison 2.2. * src/parse/asm-parse.yy.gen.py: Require Bison 2.1a. Use the LALR(1) C++ skeleton. * asm-scan.ll.gen.py: Update the the scanner to use tokens from yy::parser::token. * src/parse/asm-scan.hh (yylex): Adjust the types of the arguments. * src/parse/libparse.cc: Include parse/asm-scan.hh. * build-aux/bison++.in: Remove Bison 2.0 support.
-
- 25 Sep, 2005 1 commit
-
-
Benoit Perrot authored
Reduce includes' dependencies. * src/vm/cpu.hh, src/vm/cpu.cc * src/vm/virtual_machine.hh, src/vm/virtual_machine.cc * src/parse/asm-parse.yy.gen.py, src/parse/asm-scan.ll.gen.py, * src/inst/register.hh, * src/inst/op_exp.hh, * src/inst/label_exp.hh, * src/inst/exp.hh, * src/inst/section.hh, src/inst/data_section.hh, * src/inst/program.hh * src/inst/nodes.gen.py * src/inst/inst.hh * src/inst/label.hh: Remove unused includes, forward-declare classes.
-
- 03 Sep, 2005 1 commit
-
-
Benoit Perrot authored
* src/misc/unique_string.hh, src/misc/unique_string.cc: Introduce a constructor from a const char*. Factor string insertion in pool. Suggested by Akim Demaille: Use a set of strings instead of a set of pointers as internal pool. Compose an iterator instead of a pointer. * src/parse/asm-scan.ll.gen.py: Suggested by Akim Demaille: Don't be affraid to side-affect yytext.
-
- 01 Sep, 2005 1 commit
-
-
Benoit Perrot authored
Simplify unique_string construction. * src/misc/unique_string.hh, src/misc/unique_string.cc (create): Remove. Move its implementation to unique_string's constructor, hence make unique_string aggregate a pointer-to-string instead of a reference. * src/misc/test-unique_string.cc, src/vm/virtual_machine.cc, * src/shell/shell.cc, src/parse/asm-parse.yy.gen.py, * src/parse/asm-scan.ll.gen.py, src/inst/label_exp.hh, * src/inst/section.hh, src/inst/label.hh: Adjust.
-
- 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.
-
- 21 Apr, 2005 1 commit
-
-
Benoit Perrot authored
* dec/parse-asm-scan-gen.py: Explicitely dispatch on signed integer when reading one from a string, by checking its first character (g++-3.4 considers converting "-1" into an "(unsigned&) i" as an error, whereas g++-3.3 did not).
-
- 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"""
-
- 24 Jan, 2005 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Introduce some (weak) reentrancy into lexer. * dev/parse-asm-scan-gen.py: Maintain a stack of scanning states. This comes from the LRDE's Tiger Compiler's scanner.
-
- 11 Jan, 2005 1 commit
-
-
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.
-
- 06 Jan, 2005 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Strengthen lexical analysis. * dev/parse-asm-scan-gen.py: Complain when a lexicaly correct integer cannot be converted by istringstream, for example when the said integer is too large. For hexadecimal integers, a maximal number of digits might be used, but it seems more generic to handle it through istringstream; never knowns, someday nolimips may have to support 64 or event 128 bits long integers :). Call step() each time an invalid character is detected, to have a more clever error message. Step only one line when an eol sequence is detected. * tests/lexical/invalid-characters.s, integer-too-large.s: New. * tests/lexical/Makefile.am: Update accordingly.
-
- 28 Oct, 2004 1 commit
-
-
Clement Vasseur authored
* dev/parse-asm-scan-gen.py: Add missing <cerrno> header for `errno'. The problem appeared on NetBSD.
-
- 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.
-
- 25 Jun, 2004 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> Make Nolimips compile on OS X. * dev/parse-asm-scan.ll: Suggested by Akim Demaille: Prefer istringstream to strtoll.
-
- 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.
-
- 04 Apr, 2004 1 commit
-
-
Benoit Perrot authored
from Benoît Perrot <benoit@lrde.epita.fr> * dev/inst-solver-gen.py, * dev/parse-asm-scan-gen.py, * src/inst/register.hh: Support generic register identifiers. * NEWS: Document it. * tests/lexical/unlimited-regs.s: Move to... * tests/solve/unlimited-regs.s: This file. * tests/lexical/Makefile.am, * tests/solve/Makefile.am: Update.
-
- 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.
-
- 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 2 commits
-
-
Benoit Perrot authored
--- ChangeLog Thu, 08 Jan 2004 14:42:41 +0100 noe (mipsy/2_ChangeLog 1.53 604) +++ ChangeLog Thu, 08 Jan 2004 15:24:49 +0100 noe (mipsy/2_ChangeLog 1.53 604) @@ -1,5 +1,11 @@ 2004-01-08 Benoît Perrot <benoit@lrde.epita.fr> + * dev/parse-asm-scan.py: Simplify scanner register generation. + * dev/mipsy.py: Remove useless accessors. Use a '__str__' method + instead of 'display'. +
-
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. +
-
- 19 Aug, 2003 1 commit
-
-
Benoit Perrot authored
-
- 29 Jul, 2003 1 commit
-
-
Benoit Perrot authored
-
- 18 Jul, 2003 1 commit
-
-
Benoit Perrot authored
-
- 11 Jul, 2003 1 commit
-
-
Benoit Perrot authored
* 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.
-
- 02 Apr, 2003 1 commit
-
-
Benoit Perrot authored
-
- 03 Jul, 2003 1 commit
-
-
Benoit Perrot authored
-