All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/10] target/hexagon: introduce idef-parser
@ 2021-02-11 21:50 Alessandro Di Federico via
  2021-02-11 21:50 ` [RFC PATCH 01/10] target/hexagon: update MAINTAINERS for idef-parser Alessandro Di Federico via
                   ` (10 more replies)
  0 siblings, 11 replies; 19+ messages in thread
From: Alessandro Di Federico via @ 2021-02-11 21:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: tsimpson, bcain, babush, nizzo, Alessandro Di Federico

From: Alessandro Di Federico <ale@rev.ng>

This patchset introduces the idef-parser for target/hexagon.
It is based on "[PATCH v8 00/35] Hexagon patch series".

`idef-parser` is a build-time tool built using flex and bison. Its aim
is to generate a large part of the tiny code generator frontend for
Hexagon. The prototype of idef-parser has been presented at KVM Forum
2019 ("QEMU-Hexagon: Automatic Translation of the ISA Manual Pseudcode
to Tiny Code Instructions"):

    https://www.youtube.com/watch?v=3EpnTYBOXCI

`target/hexagon/idef-parser/README.rst` provides an overview of the
parser and its inner working.

Please consider this an RFC, this is our first large patchset. Feedback
is more than welcome.

A couple of notes:

* `idef-parser` also supports certain things that are not used in the
  most recently submitted version of the "Hexagon patch
  series". However, they will be needed and stripping them out of the
  parser is quite a bit of work.
* checkpatch.pl complains on a single macro which has a trailing
  semi-colon, which is required.

Alessandro Di Federico (4):
  target/hexagon: update MAINTAINERS for idef-parser
  target/hexagon: import README for idef-parser
  target/hexagon: prepare input for the idef-parser
  target/hexagon: call idef-parser functions

Niccolò Izzo (2):
  target/hexagon: introduce new helper functions
  target/hexagon: import additional tests

Paolo Montesel (4):
  target/hexagon: make helper functions non-static
  target/hexagon: expose next PC in DisasContext
  target/hexagon: import lexer for idef-parser
  target/hexagon: import parser for idef-parser

 MAINTAINERS                                 |    8 +
 target/hexagon/README                       |    5 +
 target/hexagon/gen_idef_parser_funcs.py     |  114 ++
 target/hexagon/gen_tcg_funcs.py             |   28 +-
 target/hexagon/genptr.c                     |  237 ++-
 target/hexagon/genptr.h                     |   26 +
 target/hexagon/hex_common.py                |   10 +
 target/hexagon/idef-parser/README.rst       |  446 +++++
 target/hexagon/idef-parser/idef-lexer.lex   |  648 +++++++
 target/hexagon/idef-parser/idef-parser.h    |  245 +++
 target/hexagon/idef-parser/idef-parser.y    | 1250 ++++++++++++
 target/hexagon/idef-parser/macros.inc       |  166 ++
 target/hexagon/idef-parser/parser-helpers.c | 1925 +++++++++++++++++++
 target/hexagon/idef-parser/parser-helpers.h |  293 +++
 target/hexagon/idef-parser/prepare          |   33 +
 target/hexagon/meson.build                  |   65 +-
 target/hexagon/translate.c                  |    4 +-
 target/hexagon/translate.h                  |    1 +
 tests/tcg/hexagon/Makefile.target           |   35 +-
 tests/tcg/hexagon/crt.S                     |   28 +
 tests/tcg/hexagon/first.S                   |   24 +-
 tests/tcg/hexagon/test_abs.S                |   20 +
 tests/tcg/hexagon/test_add.S                |   20 +
 tests/tcg/hexagon/test_andp.S               |   23 +
 tests/tcg/hexagon/test_bitcnt.S             |   42 +
 tests/tcg/hexagon/test_bitsplit.S           |   25 +
 tests/tcg/hexagon/test_call.S               |   63 +
 tests/tcg/hexagon/test_clobber.S            |   35 +
 tests/tcg/hexagon/test_cmp.S                |   34 +
 tests/tcg/hexagon/test_cmpy.S               |   31 +
 tests/tcg/hexagon/test_djump.S              |   24 +
 tests/tcg/hexagon/test_dotnew.S             |   39 +
 tests/tcg/hexagon/test_dstore.S             |   29 +
 tests/tcg/hexagon/test_ext.S                |   18 +
 tests/tcg/hexagon/test_fibonacci.S          |   33 +
 tests/tcg/hexagon/test_hello.S              |   21 +
 tests/tcg/hexagon/test_hl.S                 |   19 +
 tests/tcg/hexagon/test_hwloops.S            |   25 +
 tests/tcg/hexagon/test_jmp.S                |   25 +
 tests/tcg/hexagon/test_lsr.S                |   39 +
 tests/tcg/hexagon/test_mpyi.S               |   20 +
 tests/tcg/hexagon/test_packet.S             |   26 +
 tests/tcg/hexagon/test_reorder.S            |   31 +
 tests/tcg/hexagon/test_round.S              |   31 +
 tests/tcg/hexagon/test_vavgw.S              |   33 +
 tests/tcg/hexagon/test_vcmpb.S              |   32 +
 tests/tcg/hexagon/test_vcmpw.S              |   29 +
 tests/tcg/hexagon/test_vcmpy.S              |   50 +
 tests/tcg/hexagon/test_vlsrw.S              |   23 +
 tests/tcg/hexagon/test_vmaxh.S              |   37 +
 tests/tcg/hexagon/test_vminh.S              |   37 +
 tests/tcg/hexagon/test_vpmpyh.S             |   30 +
 tests/tcg/hexagon/test_vspliceb.S           |   33 +
 53 files changed, 6540 insertions(+), 28 deletions(-)
 create mode 100644 target/hexagon/gen_idef_parser_funcs.py
 create mode 100644 target/hexagon/idef-parser/README.rst
 create mode 100644 target/hexagon/idef-parser/idef-lexer.lex
 create mode 100644 target/hexagon/idef-parser/idef-parser.h
 create mode 100644 target/hexagon/idef-parser/idef-parser.y
 create mode 100644 target/hexagon/idef-parser/macros.inc
 create mode 100644 target/hexagon/idef-parser/parser-helpers.c
 create mode 100644 target/hexagon/idef-parser/parser-helpers.h
 create mode 100755 target/hexagon/idef-parser/prepare
 create mode 100644 tests/tcg/hexagon/crt.S
 create mode 100644 tests/tcg/hexagon/test_abs.S
 create mode 100644 tests/tcg/hexagon/test_add.S
 create mode 100644 tests/tcg/hexagon/test_andp.S
 create mode 100644 tests/tcg/hexagon/test_bitcnt.S
 create mode 100644 tests/tcg/hexagon/test_bitsplit.S
 create mode 100644 tests/tcg/hexagon/test_call.S
 create mode 100644 tests/tcg/hexagon/test_clobber.S
 create mode 100644 tests/tcg/hexagon/test_cmp.S
 create mode 100644 tests/tcg/hexagon/test_cmpy.S
 create mode 100644 tests/tcg/hexagon/test_djump.S
 create mode 100644 tests/tcg/hexagon/test_dotnew.S
 create mode 100644 tests/tcg/hexagon/test_dstore.S
 create mode 100644 tests/tcg/hexagon/test_ext.S
 create mode 100644 tests/tcg/hexagon/test_fibonacci.S
 create mode 100644 tests/tcg/hexagon/test_hello.S
 create mode 100644 tests/tcg/hexagon/test_hl.S
 create mode 100644 tests/tcg/hexagon/test_hwloops.S
 create mode 100644 tests/tcg/hexagon/test_jmp.S
 create mode 100644 tests/tcg/hexagon/test_lsr.S
 create mode 100644 tests/tcg/hexagon/test_mpyi.S
 create mode 100644 tests/tcg/hexagon/test_packet.S
 create mode 100644 tests/tcg/hexagon/test_reorder.S
 create mode 100644 tests/tcg/hexagon/test_round.S
 create mode 100644 tests/tcg/hexagon/test_vavgw.S
 create mode 100644 tests/tcg/hexagon/test_vcmpb.S
 create mode 100644 tests/tcg/hexagon/test_vcmpw.S
 create mode 100644 tests/tcg/hexagon/test_vcmpy.S
 create mode 100644 tests/tcg/hexagon/test_vlsrw.S
 create mode 100644 tests/tcg/hexagon/test_vmaxh.S
 create mode 100644 tests/tcg/hexagon/test_vminh.S
 create mode 100644 tests/tcg/hexagon/test_vpmpyh.S
 create mode 100644 tests/tcg/hexagon/test_vspliceb.S

-- 
2.30.0



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2021-02-25 15:26 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-11 21:50 [RFC PATCH 00/10] target/hexagon: introduce idef-parser Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 01/10] target/hexagon: update MAINTAINERS for idef-parser Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 02/10] target/hexagon: import README " Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 03/10] target/hexagon: make helper functions non-static Alessandro Di Federico via
2021-02-11 23:04   ` Philippe Mathieu-Daudé
2021-02-11 23:23     ` Philippe Mathieu-Daudé
2021-02-11 21:50 ` [RFC PATCH 04/10] target/hexagon: introduce new helper functions Alessandro Di Federico via
2021-02-11 23:22   ` Philippe Mathieu-Daudé
2021-02-11 21:50 ` [RFC PATCH 05/10] target/hexagon: expose next PC in DisasContext Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 06/10] target/hexagon: prepare input for the idef-parser Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 07/10] target/hexagon: import lexer for idef-parser Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 08/10] target/hexagon: import parser " Alessandro Di Federico via
2021-02-14 16:56   ` Richard Henderson
2021-02-25 15:24     ` Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 09/10] target/hexagon: call idef-parser functions Alessandro Di Federico via
2021-02-11 21:50 ` [RFC PATCH 10/10] target/hexagon: import additional tests Alessandro Di Federico via
2021-02-15  1:34   ` Richard Henderson
2021-02-14 21:52 ` [RFC PATCH 00/10] target/hexagon: introduce idef-parser Richard Henderson
2021-02-25 15:24   ` Alessandro Di Federico via

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.