Commit d5904811 authored by Benoit Perrot's avatar Benoit Perrot
Browse files

Index: ChangeLog

from  Benoît Perrot  <benoit@lrde.epita.fr>
        More documentation.

        * doc/copying.texi,
        * doc/internal.texi,
        * doc/invoking.texi,
        * doc/language.texi:
        Remove files, move their content to...
        * doc/mipsy.texi:
        ... this file.
        Augment documentation on invocation.
parent eeaef65a
2004-03-28 Benot Perrot <benoit@lrde.epita.fr>
More documentation.
* doc/copying.texi,
* doc/internal.texi,
* doc/invoking.texi,
* doc/language.texi:
Remove files, move their content to...
* doc/mipsy.texi:
... this file.
Augment documentation on invocation.
2004-03-28 Benot Perrot <benoit@lrde.epita.fr>
Homogenize attribute names.
......
@comment ---- Copying
@copying
This manual is for @acronym{MIPSY} (version @value{VERSION},
@value{UPDATED}), the tiny MIPS simulator.
@noindent
Copyright @copyright{} 2003 Benoit Perrot.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the @acronym{GNU} Free Documentation License,
Version 1.1 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being ``A @acronym{GNU} Manual,'' and with the Back-Cover Texts as in
(a) below. A copy of the license is included in the section entitled
``@acronym{GNU} Free Documentation License.''
(a) The @acronym{FSF}'s Back-Cover Text is: ``You have freedom to copy
and modify this @acronym{GNU} Manual, like @acronym{GNU} software.
Copies published by the Free Software Foundation raise funds for
@acronym{GNU} development.''
@end quotation
@end copying
@comment ---- Internal of Mipsy
@node Internal of @mipsy{}
@chapter Internal of @mipsy{}
@menu
* Steps of @mipsy{}::
@end menu
@node Steps of @mipsy{}
@section Steps of @mipsy{}
@mipsy{} works in three steps:
@itemize @minus
@item it scan and parse the file (lexical and syntaxical analysis),
producing an abstract representation of a program;
@item it resolve the program, checking the existence of labels used and
computing branch offsets (assembly);
@item it loads the resolved program in the virtual machine,
search for an entry point labeled `main' and start execution (execution).
@end itemize
@comment ---- Invoking Mipsy
@node Invoking @mipsy{}
@chapter Invoking @mipsy{}
To invoke @command{mipsy} run:
@example
mipsy @var{options} @var{file}
@end example
@noindent
where @file{file.s} is a simple text file, and @var{options} is any
combination of the following options:
@table @code
@item -?
@itemx --help
Display a help message and exit successfully.
@item -V
@itemx --version
Display the version number and exit successfully.
@item FIXME:
Document the rest of it.
@end table
@comment ---- The Mipsy language
@node The @mipsy{} Language
@chapter The @mipsy{} Language
@mipsy{} supports a minimal MIPS instruction set and unlimited
registers.
@c FIXME: registers, syntax, etc.
@menu
* The @mipsy{} supported instruction set::
* @mipsy{} features::
@end menu
@comment -- Mipsy's supported instruction set
@include inst-set.texi
@comment -- Mipsy's feature
@node @mipsy{} features
@section @mipsy{} features
\input texinfo @c -*-texinfo-*-
@comment ---- Header ---------------------------------------
@comment ---- Prologue --------------------------------------------------------
@comment -- Header -----------------------------------------
@c %**start of header
@setfilename mipsy.info
@include version.texi
@include macros.texi
@include copying.texi
@comment Copying
@copying
This manual is for @acronym{MIPSY} (version @value{VERSION},
@value{UPDATED}), the tiny MIPS simulator.
@noindent
Copyright @copyright{} 2003 Benoit Perrot.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the @acronym{GNU} Free Documentation License,
Version 1.1 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being ``A @acronym{GNU} Manual,'' and with the Back-Cover Texts as in
(a) below. A copy of the license is included in the section entitled
``@acronym{GNU} Free Documentation License.''
(a) The @acronym{FSF}'s Back-Cover Text is: ``You have freedom to copy
and modify this @acronym{GNU} Manual, like @acronym{GNU} software.
Copies published by the Free Software Foundation raise funds for
@acronym{GNU} development.''
@end quotation
@end copying
@comment Title
@settitle Mipsy @value{VERSION}
@setchapternewpage odd
@finalout
......@@ -18,7 +44,7 @@
@titlepage
@title mipsy
@subtitle The Tiny MIPS Simulator
@subtitle The MIPS Architecure Emulator
@subtitle @value{UPDATED}, @acronym{MIPSY} Version @value{VERSION}
@author Benoit Perrot
@page
......@@ -27,8 +53,7 @@
@end titlepage
@c %**end of header
@comment ---- Prologue -------------------------------------
@comment -- Table of contents ------------------------------
@contents
@ifnottex
......@@ -37,16 +62,24 @@
@insertcopying
@end ifnottex
@mipsy{} is a MIPS simulator designed to execute simple register based
MIPS assembly code. It is a minimalist MIPS virtual machine, which
allows unlimited registers.
@mipsy{} is a basic MIPS architecture simulator. It consists of an
assembler which reads MIPS assembly code, and of a virtual machine
which executes the instructions processed by the assembler. For the
moment @mipsy does not produce nor execute binary code, but ELF writer
and loader are planned.
The main purpose of @mipsy is to help students of compilers courses to
evaluate the output from their "high-level language into MIPS assembler code"
compilers, before and after register allocation.
Its features are:
@itemize @minus
@item
sufficient support of MIPS instruction set
minimal support of MIPS instruction set
@item
illimited registers
built-in system calls (string printing and reading, etc.)
@item
unlimited registers ($x0, $x1, etc.).
@end itemize
It was written by Benoit Perrot as an @acronym{LRDE} member, so that
......@@ -80,6 +113,8 @@ More information on Python can be found on
@detailmenu
--- The Detailed Node Listing ---
Invoking @mipsy{}
Internal of @mipsy{}
* Steps of @mipsy{} ::
......@@ -97,29 +132,135 @@ Copying This Manual
@end menu
@comment ---- Content --------------------------------------
@comment ---- Content ---------------------------------------------------------
@comment -- Invoking Mipsy ---------------------------------
@node Invoking @mipsy{}
@chapter Invoking @mipsy{}
To invoke @command{mipsy} run:
@example
mipsy @var{options} @var{file}
@end example
@noindent
where @file{file.s} is a simple text file, and @var{options} is any
combination of the following options:
@table @code
@item -?
@itemx --help
Display a help message and exit successfully.
@item -V
@itemx --version
Display the version number and exit successfully.
@item --usage
Give a short usage message
@item --tasks-selection
Each task of @mipsy{} (parsing, execution, etc.) comes with a set of
prerequisites: for example the pretty printing of an input program
implies the parsing of its source file. This option asks @mipsy{} to
display the tasks that must be run before to run the ones explicitly
specified on command line.
@item --parse
Parse a file.
@item --trace-scan
Trace the scanning.
@item --trace-parse
Trace the parse.
@item --fill-delay-slot
To avoid a bubble in their pipeline, MIPS processors execute the
instruction immediately following a branch; this instruction is said
to be in the delay slot (FIXME: see further). This option fills the
delay slot of branch instructions with a NOP, disabling the delay
slot, simplifying the task of assembly programmers how do not care
about writing optimized code.
@item --unlimited-regs
During last stages of a compiler, the intermediate representation of a
source file (which mainly consists in a generic, architecture
independent assembly code) is progressively translated into an
architecture dependent assembly code. Low level (but still intermediate)
representations are designed to be as near as possible of target
assembly code, but generaly consider an extended target machine with an
unlimited amount of registers. This option gives @mipsy{} the ability
to handle an arbitrary number of registers, allowing compiler
developpers to test their low level output before implementing
register allocation. These new registers may be used as any other MIPS
registers through the symbols @code{$x0}, @code{$x1}, and so on. They
have a general purpose and are not considered as caller save nor
callee save registers.
@item --prg-display
Display the read program.
@item --prg-solve
Resolve jump offsets and check bounds of immediates.
@item --check-callee-save
Warn if a callee save register is not preserved across a call.
@item --execute
Execute the program on virtual machine.
@item --trace-exec
Trace the execution.
@end table
@comment -- Internal of Mipsy ------------------------------
@node Internal of @mipsy{}
@chapter Internal of @mipsy{}
@comment -- Invoking Mipsy
@include invoking.texi
@menu
* Steps of @mipsy{}::
@end menu
@comment -- Internal of Mipsy
@include internal.texi
@node Steps of @mipsy{}
@section Steps of @mipsy{}
@comment -- The Mipsy language
@include language.texi
@mipsy{} works in three steps:
@itemize @minus
@item it scans and parses the file (lexical and syntaxical analysis),
producing an abstract representation of a program;
@item it resolves the program, checking the existence of labels used and
computing branch offsets (assembly);
@item it loads the resolved program in the virtual machine,
search for an entry point labeled @code{main} and start execution (execution).
@end itemize
@comment -- Free Documentation License
@include fdl.texi
@comment -- The Mipsy language -----------------------------
@node The @mipsy{} Language
@chapter The @mipsy{} Language
@mipsy{} supports a minimal MIPS instruction set and unlimited
registers.
@c FIXME: registers, syntax, etc.
@comment ---- Epilogue -------------------------------------
@menu
* The @mipsy{} supported instruction set::
* @mipsy{} features::
@end menu
@comment Mipsy's supported instruction set
@include inst-set.texi
@comment Mipsy's feature
@node @mipsy{} features
@section @mipsy{} features
@comment -- Index
@comment ---- Epilogue --------------------------------------------------------
@comment -- Free Documentation License ---------------------
@include fdl.texi
@comment -- Index ------------------------------------------
@node Index
@unnumbered Index
@printindex cp
@printindex fn
@bye
......@@ -2,56 +2,28 @@
(Created-By-Prcs-Version 1 3 2)
(Project-Description "")
(Project-Version mipsy 0 77)
(Parent-Version mipsy 0 76)
(Project-Version mipsy 0 78)
(Parent-Version mipsy 0 77)
(Version-Log
"Index: ChangeLog
from Benot Perrot <benoit@lrde.epita.fr>
More documentation.
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_)
* doc/copying.texi,
* doc/internal.texi,
* doc/invoking.texi,
* doc/language.texi:
Remove files, move their content to...
* doc/mipsy.texi:
... this file.
Augment documentation on invocation.
")
(New-Version-Log
"")
(Checkin-Time "Sun, 28 Mar 2004 17:02:13 +0200")
(Checkin-Time "Sun, 28 Mar 2004 21:06:52 +0200")
(Checkin-Login benoit)
(Files
......@@ -59,7 +31,7 @@ from Beno
;; ./
(AUTHORS (mipsy/0_AUTHORS 1.1 644))
(COPYING (mipsy/1_COPYING 1.1 644))
(ChangeLog (mipsy/2_ChangeLog 1.71 604))
(ChangeLog (mipsy/2_ChangeLog 1.72 604))
(INSTALL (mipsy/b/12_INSTALL 1.1 604))
(Makefile.am (mipsy/3_Makefile.a 1.8 604))
(NEWS (mipsy/b/25_NEWS 1.6 604))
......@@ -84,13 +56,9 @@ from Beno
;; ./doc/
(doc/Makefile.am (mipsy/b/9_Makefile.a 1.3 604))
(doc/copying.texi (mipsy/c/16_copying.te 1.1 604))
(doc/fdl.texi (mipsy/b/11_fdl.texi 1.2 604))
(doc/internal.texi (mipsy/c/17_internal.t 1.1 604))
(doc/invoking.texi (mipsy/c/18_invoking.t 1.1 604))
(doc/language.texi (mipsy/c/19_language.t 1.2 604))
(doc/macros.texi (mipsy/c/20_macros.tex 1.1 604))
(doc/mipsy.texi (mipsy/b/10_mipsy.texi 1.4 604))
(doc/mipsy.texi (mipsy/b/10_mipsy.texi 1.5 604))
;; ./src/
(src/Makefile.am (mipsy/18_Makefile.a 1.2 644))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment