Hi,

on behalf of Controls and Data Services, AdaCore would like to contribute a
port of the GCC to the Visium.  This is a 32-bit RISC architecture with an 
Extended Arithmetic Module implementing some 64-bit operations and an FPU
designed for embedded systems.  The binutils port has already been contributed 
and the ultimate goal is to contribute a port of the entire toolchain with 
simulator, debugger and embedded libc.

The original port had been written by employees of CDS or companies that
are now part of CDS, and AdaCore contributed enhancements and modifications
on top of it.  Both companies have a copyright assignment on file with the
FSF for the various components of the toolchain.

The Visium is a classic 32-bit RISC architecture whose branches have a delay 
slot and whose arithmetic and logical instructions all set the flags, and 
they comprise the moves between GP registers (which are inclusive ORs under 
the hood in the traditional RISC fashion).  The port is nevertheless MODE_CC 
and it generates code that is as good as the original cc0 implementation with 
the help of the post-reload compare elimination pass (modulo a small patch for 
the reorg pass that I'll submit separately).

The GCC port is split into 4 patches (toplevel, libgcc, gcc, gcc/testsuite) 
and is C-only for now, and 'make -k check-c' reports the following results:

Target is visium-unknown-elf
Host   is x86_64-suse-linux-gnu

                === gcc tests ===


Running target visium-sim
FAIL: gcc.dg/torture/builtin-explog-1.c   -O1  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O2  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O2 -flto -fno-use-linker-plugin -
flto-partition=none  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O3 -fomit-frame-pointer  (test for 
excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -Os  (test for excess errors)

                === gcc Summary for visium-sim ===

# of expected passes            81007
# of unexpected failures        6
# of expected failures          94
# of unsupported tests          1796

Running target visium-sim/-mcpu=gr6
FAIL: gcc.dg/torture/builtin-explog-1.c   -O1  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O2  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O2 -flto -fno-use-linker-plugin -
flto-partition=none  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O3 -fomit-frame-pointer  (test for 
excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/torture/builtin-explog-1.c   -Os  (test for excess errors)

                === gcc Summary for visium-sim/-mcpu=gr6 ===

# of expected passes            81007
# of unexpected failures        6
# of expected failures          94
# of unsupported tests          1796

                === gcc Summary ===

# of expected passes            162014
# of unexpected failures        12
# of expected failures          188
# of unsupported tests          3592
/home/eric/build/gcc/visium-elf/gcc/xgcc  version 5.0.0 20141211 
(experimental) [trunk revision 218617] (GCC) 

after they are applied (on a x86_64-linux host).  I think that the failures 
are common to all newlib targets and very likely related to:
  https://gcc.gnu.org/ml/gcc-patches/2014-12/msg00357.html

OK for the mainline?

-- 
Eric Botcazou

Reply via email to