3.0.10

From Msim

Jump to: navigation, search

This page refers to the changes made in the 3.0.10 release of M-sim.

Release Date:

Contents

Argc

ld_load_prog (loader.[ch]) took a parameter for the size of the argument array (argv). Since argv is an std::vector, this isn't needed. ld_load_prog no longer takes argc as a parameter.
This also indicates that sim_load_prog (sim-outorder.c, main.c, sim.h) no longer need to take argc as a parameter.

Floating Point

The floating point fixes made in this version result in the following:

  • Eon's output is different but still within acceptable parameters (all the outputs look like chairs of the appropriate brightness and detail)
  • Swim's output is still different but within much closer range than previous releases
  • Vpr not runs and generates acceptable output

The following benchmarks still have issues running under M-sim

  • Sixtrack - this may not be significant but we have not done a full comparison of the output against the expected output
  • Facerec - the output is very different. It may be technically correct but we aren't sure at this point.



The macro, FIX_DOUBLE attempts to correct the precision issues at hand. In some places, the code was rewritten slightly.

Fixes

In machine.def, the following instructions were changed:

ITOFS
CVTQS
CVTQT
CVTQL

Precision Fixes

In machine.def, the following instructions were changed to handle precision issues:

SQRTS
ADDS
SUBS
MULS
DIVS
CVTQS


Missing

CVTST is missing from machine.def. Is this a problem?

Excess Instructions

The following instructions are not in the Version 4 Alpha Handbook but are in machine.def

ADDLV, ADDLVI
SUBLV, SUBLVI
ADDQV, ADDQVI
SUBQV, SUBQVI
Personal tools