Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
Commits on Dec 07, 2011
@wpwrak wpwrak libfpvm: wrap some overlong lines in fpvm.c
fpvm.c contains many lines longer than 80 characters, which makes the
code hard to read. This patch wraps most of them. Some are left long,
because they will be rewritten in a later patch.
@wpwrak wpwrak fpvm.c: replace code patterns involving add_isn with macros 9cc6afe
@wpwrak wpwrak fpvm.c: replace code patterns of register allocation with macro 81aea32
@wpwrak wpwrak fpvm.c: replace code patterns with constant register with macro d0e72af
@wpwrak wpwrak fpvm.c: replace code patterns involving add_inv_sqrt and add_int with…
… macros
@wpwrak wpwrak fpvm.c: replace code patterns involving "compile" with macros 9631279
@wpwrak wpwrak fpvm.c: changed form of REG_ALLOC and REG_CONST (suggested by Michael…
… Walle)

This is the patch with just the declaration style change.
Xiangfu Liu delete all script file. Makefile soon
Signed-off-by: Xiangfu Liu <>
Xiangfu Liu use Makefile manage the build progress cleanup the gcc output, make V…
…=1 will output all detail message

Signed-off-by: Xiangfu Liu <>
@wpwrak wpwrak libfpvm: make scanner aware of function names and handle arity in parser
This patch makes the scanner recognize function names as distinct tokens
(and not just as identifiers). This gives the parser more information
and will also enable further changes.

The parser now only accepts functions with the correct number of
arguments. Before, mistakes like sin(a, b) or min(a) were silently
@wpwrak wpwrak parser.y: move node allocation and initialization to shared function
parser.y had a lot of copies of what's essentially the same code.
This patch tidies it up.
@wpwrak wpwrak libfpvm: pass token in struct ast_node
This will help with further optimizations.
@wpwrak wpwrak fpvm.c: use token instead of operator name in operator2opcode 1cf5a46
@wpwrak wpwrak fpvm.c: use token instead of operator name in "compile" 08249b0
@wpwrak wpwrak libfpvm: infrastructure for efficient unique ID pointers 8acc7a1
@wpwrak wpwrak libfpvm: use unique strings in interface between scanner and parser 91963c5
@wpwrak wpwrak libfpvm: convert constants already in fpvm_parse
That way, we don't need to carry the string along.
@wpwrak wpwrak libfpvm: copy only pointer to identifier into AST, not the entire string c164d92
@wpwrak wpwrak libfpvm: copy only pointer into bindings, not the entire string 0500751
@wpwrak wpwrak fpvm.c: use unique strings also in fpvm_assign ... and bring in the h…

Since everything in libfpvm now uses unique strings, we can compare
strings for equality simply by comparing pointers.
Commits on Dec 12, 2011
@wpwrak wpwrak fpvm.c: renaming decision in fpvm_assign got reversed 9e61c7f
@wpwrak wpwrak libfpvm: add also functions and internal variables to fnp.ids 08f9c18
@wpwrak wpwrak libfpvm/unique.c: fix grow_table and strcmp_n
- grow_table didn't update the array size after growing
- if string "b" was longer than "a", strcmp_n returned a positive value
  indicating a > b
@wpwrak wpwrak libfpvm: don't store non-identifiers in the cache of unique identifiers 57d8617
@wpwrak wpwrak unique.c: use libc functions instead of DIY replacements b92595f
@wpwrak wpwrak libfpvm/Makefile: build now for RTEMS (instead of the demo firmware)
Note that "make depend" gets a bit whiny after this change, because it
doesn't know where to find the system headers. We also get two new
compiler warnings from isalnum, due to newlib not consistently casting
to "int".
@wpwrak wpwrak libfpvm: git rm -rf lm32-rtems/ 75e8acb
@wpwrak wpwrak libfpvm: don't use TOK_* inside fpvm.c
Code generation will have no access to the token numbers assigned by the
parser, so we create our own numbering scheme and translate between
parsing and code generation.
@wpwrak wpwrak libfpvm: split parser from fpvm.c (to fpvm-export.c) 9ffb383
@wpwrak wpwrak libfpvm: export ast.h and split internal communication (to parser_itf.h) 20b0f1c
@wpwrak wpwrak libfpvm: departure of scanner and parser 4fdae4a
@wpwrak wpwrak fpvm/fpvm.h: declare bottom functions still here, not migrated functions
fpvm_init and fpvm_assign no longer live here. Instead, declare their
lower-level remains.
@wpwrak wpwrak milkymist: ANSI-style fpvm_version declaration d30353b
@sbourdeauducq sbourdeauducq Remove demo firmware 6f50e96
@kristianpaul Merge branch 'master' into gps-sdr-testing ffbc89b
Commits on Dec 14, 2011
@wpwrak wpwrak milkymist: remove unused variables in libbase/softfloat.c 555e97f
@wpwrak wpwrak milkymist: use -Wstrict-prototypes
And fix resulting warnings.
@wpwrak wpwrak milkymist: try -Wmissing-prototypes
The math functions have too many issues to make this viable without
substantially more fixing. Just fix what little else is there.
@wpwrak wpwrak milkymist: use -Wold-style-definition f043b4c
@wpwrak wpwrak milkymist: use -Wshadow
Only one minor conflict found.
@sbourdeauducq sbourdeauducq Remove libmath 14ad8ba
Commits on Dec 23, 2011
@kristianpaul updated gold codes 99cc5f5
@kristianpaul cosmetic changes c877aa2
@kristianpaul NOW is really update prn/gold codes from namuru datasheet f9a4ec3
Commits on Dec 27, 2011
@wpwrak wpwrak software/libfpvm/Makefile: update dependencies
They still contained lots of old junk.
@wpwrak wpwrak fpvm.c: suppress compiler warning caused by -Wunused-value
This warning was generated when compiling x86-linux/, which uses clang
instead of gcc.
Commits on Dec 29, 2011
@wpwrak wpwrak milkymist: declare "code" argument of pfpu_dump "const"
A small bit of cleanup, to allow Flickernoise to do the same.

- Werner
Commits on Dec 30, 2011
@wpwrak wpwrak libfpvm: rename op_not to op_negate
We'll soon use "not", and this would get confusing.
@wpwrak wpwrak libfpvm: end enum ast_op with op_vops, for parser-internal extensions 9f71dde
Commits on Jan 07, 2012
@wpwrak wpwrak libfpvm: only access node->label if we have an indentifier
We provide a function node_is_op for the library user to make this
distiction as well (used in parser_helper.c).

Note that this change means that we can't report the name of the
operator that causes an "Operation not supported" error. This is
visible to users in the case of op_not. Fix later.
Commits on Jan 10, 2012
@wpwrak wpwrak libfpvm: introduce "struct sym" as abstraction for an identifier
This has ripple effects all through libfpvm but shouldn't change
Commits on Jan 11, 2012
@wpwrak wpwrak libfpvm: rename "struct sym" to "struct fpvm_sym" 8dbe0fd
Commits on Jan 12, 2012
@wpwrak wpwrak libfpvm: make op_not a regular operator and implement it in all cases
We can substitute  !X  it with  X == 0. This catches cases where boolean
not is used algorithmically and not directly with if.
Commits on Jan 13, 2012
@wpwrak wpwrak libfpvm/x86-linux/Makefile: support silent builds as well 9f8e947
Commits on Jan 15, 2012
@wpwrak wpwrak tools/asm: PFPU assembler 8696dfc
@wpwrak wpwrak tools/asm/pfpu: quick and dirty script to run pfpuasm and execute the…
… result

The environment variable M1_HOST defines on which M1 to execute
the code. M1_USER and M1_PW define the telnet access.
@wpwrak wpwrak tools/asm/pfpu: fix processing of option -i
The option -i wasn't shifted off, causing pfpuasm and ultimately cpp
to fail.
@wpwrak wpwrak pfpuasm: auto-NOP, pass all regs, and some syntax corrections
A number of small improvements:

- VECTOUT doesn't need a destination register (use 0)
- QUAKE is unary, not binary
- option -a to automatically fill the latency slots with NOP
  (without caring about efficiency)
- all registers referenced (read or write) are listed
Commits on Jan 16, 2012
@wpwrak wpwrak asm/pfpu: new option -v; cleanup
This patch contains the following changes:

- new option -v for verbose operation. By default, pfpu now only displays
  the result line and ignores the rest of the session.

- send nc's diagnostics to standard output so that we can suppress
  its "connected" line (alas, this means that error messages are
  only shown in verbose mode)

- added header comment
@wpwrak wpwrak asm/fpvm: fpvm-like execution engine
This engine also accepts symbolic register names. Uses pfpu for
stepwise execution.
@wpwrak wpwrak asm/mod.fpvm: modulo calculation example
Run with
./fpvm mod.fpvm

Or, more entertaining
./fpvm -x mod.fpvm

For every last gory detail, use
./fpvm -d -x mod.fpvm
Commits on Jan 17, 2012
@wpwrak wpwrak libfpvm: rename op_not to op_bnot, to follow MilkDrop naming f2650b2
Commits on Jan 25, 2012
@wpwrak wpwrak libfpvm: added operators for logical AND and OR (untested, WIP) 530ae74
Commits on Feb 08, 2012
@dvdkhlng dvdkhlng fix 'make install' target
Just a slight fix.  Don't like non-distribution stuff to populate /usr/bin


Commits on Feb 10, 2012
@fpgaminer fpgaminer improvement for libbase uart.c
  uart_isr, when applicable, will reset CSR_UART_STAT after it has
  written new data to the UART module. If the UART module is able
  to finish that request before uart_isr writes to CSR_UART_STAT,
  then uart_isr will end up clearing the wrong event. This prevents
  uart_isr from ever being called again, and stalls all outgoing data
Commits on Feb 19, 2012
@kristianpaul Merge branches 'master' and 'gps-sdr-testing' into gps-sdr-testing b1c6d66
@kristianpaul Fix clock frequency to 4x SiGE EVB Sampling clock 5fc3020
@kristianpaul warning comment (to remenber my self) e2d56b8