From: Taylor Simpson <tsimpson@quicinc.com>
To: qemu-devel@nongnu.org
Cc: ale@rev.ng, riku.voipio@iki.fi, richard.henderson@linaro.org,
laurent@vivier.eu, tsimpson@quicinc.com, philmd@redhat.com,
aleksandar.m.mail@gmail.com
Subject: [RFC PATCH v3 00/34] Hexagon patch series
Date: Tue, 18 Aug 2020 10:50:13 -0500 [thread overview]
Message-ID: <1597765847-16637-1-git-send-email-tsimpson@quicinc.com> (raw)
This series adds support for the Hexagon processor with Linux user support
See patch 02/34 Hexagon README for detailed information.
Once the series is applied, the Hexagon port will pass "make check-tcg".
The series also includes Hexagon-specific tests in tcg/tests/hexagon.
We have a parallel effort to make the Hexagon Linux toolchain inside a docker
container publically available.
*** Future items under consideration ***
Use qemu softfloat
Use qemu decodetree
*** Known checkpatch issues ***
The following are known checkpatch errors in the series
target/hexagon/reg_fields.h Complex macro
target/hexagon/attribs.h Complex macro
target/hexagon/decode.c Complex macro
target/hexagon/q6v_decode.c Macro needs do - while
target/hexagon/printinsn.c Macro needs do - while
target/hexagon/gen_semantics.c Suspicious ; after while (0)
target/hexagon/gen_dectree_import.c Complex macro
target/hexagon/gen_dectree_import.c Suspicious ; after while (0)
target/hexagon/opcodes.c Complex macro
target/hexagon/iclass.h Complex macro
scripts/qemu-binfmt-conf.sh Line over 90 characters
The following are known checkpatch warnings in the series
target/hexagon/fma_emu.c Comments inside macro definition
scripts/qemu-binfmt-conf.sh Line over 80 characters
*** Changes in v3 ***
Remove substantial portions of the code to facilitate review
- Plan to submit subsequent patches
- Hexagon Vector eXtensions (HVX)
- Circular and bit-reverse addressiong
- Add/sub-with-carry
- Unused insn_t and pkt_t fields
- Unused instruction attributes
- All TCG overrides except instructions with multiple definitions
- Unused macros
- Unused reg fields
- COUNT_HEX_HELPERS
Use Laurent's gensyscall.sh script to generate linux-user/hexagon/syscall_nr.h
Handle mem_noshuf
Remove "RsV = RsV" per review feedback
Simplify include file structure
Add directed tests in <qemu>/tests/tcg/hexagon
Rework the python scripts to generate one header file at a time
Change fWRAP_* macros to fGEN_TCG_*
*** Changes in v2 ***
- Use scripts/git.orderfile
Taylor Simpson (34):
Hexagon Update MAINTAINERS file
Hexagon (target/hexagon) README
Hexagon (include/elf.h) ELF machine definition
Hexagon (target/hexagon) scalar core definition
Hexagon (target/hexagon) register names
Hexagon (disas) disassembler
Hexagon (target/hexagon) scalar core helpers
Hexagon (target/hexagon) GDB Stub
Hexagon (target/hexagon) architecture types
Hexagon (target/hexagon) instruction and packet types
Hexagon (target/hexagon) register fields
Hexagon (target/hexagon) instruction attributes
Hexagon (target/hexagon) register map
Hexagon (target/hexagon) instruction/packet decode
Hexagon (target/hexagon) instruction printing
Hexagon (target/hexagon) utility functions
Hexagon (target/hexagon/imported) arch import - macro definitions
Hexagon (target/hexagon/imported) arch import - instruction semantics
Hexagon (target/hexagon/imported) arch import - instruction encoding
Hexagon (target/hexagon) generator phase 1 - C preprocessor for
semantics
Hexagon (target/hexagon) generator phase 2 - generate header files
Hexagon (target/hexagon) generator phase 3 - C preprocessor for decode
tree
Hexagon (target/hexagon) generater phase 4 - decode tree
Hexagon (target/hexagon) opcode data structures
Hexagon (target/hexagon) macros to interface with the generator
Hexagon (target/hexagon) macros referenced in instruction semantics
Hexagon (target/hexagon) instruction classes
Hexagon (target/hexagon) TCG generation helpers
Hexagon (target/hexagon) TCG generation
Hexagon (target/hexagon) TCG for instructions with multiple
definitions
Hexagon (target/hexagon) translation
Hexagon (linux-user/hexagon) Linux user emulation
Hexagon (tests/tcg/hexagon) TCG tests
Hexagon build infrastructure
configure | 9 +
default-configs/hexagon-linux-user.mak | 1 +
include/disas/dis-asm.h | 1 +
include/elf.h | 2 +
linux-user/hexagon/sockbits.h | 18 +
linux-user/hexagon/syscall_nr.h | 343 +++++
linux-user/hexagon/target_cpu.h | 44 +
linux-user/hexagon/target_elf.h | 40 +
linux-user/hexagon/target_fcntl.h | 18 +
linux-user/hexagon/target_signal.h | 34 +
linux-user/hexagon/target_structs.h | 46 +
linux-user/hexagon/target_syscall.h | 32 +
linux-user/hexagon/termbits.h | 18 +
linux-user/syscall_defs.h | 33 +
target/hexagon/arch.h | 42 +
target/hexagon/attribs.h | 32 +
target/hexagon/attribs_def.h | 98 ++
target/hexagon/conv_emu.h | 50 +
target/hexagon/cpu-param.h | 26 +
target/hexagon/cpu.h | 164 +++
target/hexagon/cpu_bits.h | 34 +
target/hexagon/decode.h | 39 +
target/hexagon/fma_emu.h | 27 +
target/hexagon/gen_tcg.h | 198 +++
target/hexagon/genptr.h | 25 +
target/hexagon/genptr_helpers.h | 244 ++++
target/hexagon/helper.h | 35 +
target/hexagon/hex_arch_types.h | 43 +
target/hexagon/hex_regs.h | 83 ++
target/hexagon/iclass.h | 46 +
target/hexagon/insn.h | 75 +
target/hexagon/internal.h | 42 +
target/hexagon/macros.h | 982 +++++++++++++
target/hexagon/opcodes.h | 66 +
target/hexagon/printinsn.h | 26 +
target/hexagon/reg_fields.h | 40 +
target/hexagon/reg_fields_def.h | 78 +
target/hexagon/regmap.h | 38 +
target/hexagon/translate.h | 103 ++
disas/hexagon.c | 62 +
linux-user/elfload.c | 16 +
linux-user/hexagon/cpu_loop.c | 99 ++
linux-user/hexagon/signal.c | 276 ++++
linux-user/syscall.c | 2 +
target/hexagon/arch.c | 354 +++++
target/hexagon/conv_emu.c | 369 +++++
target/hexagon/cpu.c | 318 +++++
target/hexagon/decode.c | 593 ++++++++
target/hexagon/fma_emu.c | 781 ++++++++++
target/hexagon/gdbstub.c | 49 +
target/hexagon/gen_dectree_import.c | 191 +++
target/hexagon/gen_semantics.c | 88 ++
target/hexagon/genptr.c | 56 +
target/hexagon/iclass.c | 88 ++
target/hexagon/op_helper.c | 365 +++++
target/hexagon/opcodes.c | 211 +++
target/hexagon/printinsn.c | 94 ++
target/hexagon/q6v_decode.c | 373 +++++
target/hexagon/reg_fields.c | 28 +
target/hexagon/translate.c | 730 ++++++++++
tests/tcg/hexagon/atomics.c | 122 ++
tests/tcg/hexagon/clrtnew.c | 56 +
tests/tcg/hexagon/dual_stores.c | 60 +
tests/tcg/hexagon/exec_counters.c | 57 +
tests/tcg/hexagon/mem_noshuf.c | 291 ++++
tests/tcg/hexagon/misc.c | 293 ++++
tests/tcg/hexagon/preg_alias.c | 106 ++
tests/tcg/hexagon/pthread_cancel.c | 43 +
tests/tcg/hexagon/sfminmax.c | 62 +
MAINTAINERS | 8 +
disas/Makefile.objs | 1 +
scripts/gensyscalls.sh | 3 +-
scripts/qemu-binfmt-conf.sh | 6 +-
target/hexagon/Makefile.objs | 203 +++
target/hexagon/README | 254 ++++
target/hexagon/dectree.py | 352 +++++
target/hexagon/gen_helper_funcs.py | 230 +++
target/hexagon/gen_helper_protos.py | 158 +++
target/hexagon/gen_op_attribs.py | 46 +
target/hexagon/gen_op_regs.py | 119 ++
target/hexagon/gen_opcodes_def.py | 43 +
target/hexagon/gen_printinsn.py | 182 +++
target/hexagon/gen_shortcode.py | 71 +
target/hexagon/gen_tcg_funcs.py | 301 ++++
target/hexagon/hex_common.py | 204 +++
target/hexagon/imported/allidefs.def | 30 +
target/hexagon/imported/alu.idef | 1259 +++++++++++++++++
target/hexagon/imported/branch.idef | 328 +++++
target/hexagon/imported/compare.idef | 621 ++++++++
target/hexagon/imported/encode.def | 125 ++
target/hexagon/imported/encode_pp.def | 2110 ++++++++++++++++++++++++++++
target/hexagon/imported/encode_subinsn.def | 150 ++
target/hexagon/imported/float.idef | 313 +++++
target/hexagon/imported/iclass.def | 52 +
target/hexagon/imported/ldst.idef | 286 ++++
target/hexagon/imported/macros.def | 1529 ++++++++++++++++++++
target/hexagon/imported/mpy.idef | 1212 ++++++++++++++++
target/hexagon/imported/shift.idef | 1067 ++++++++++++++
target/hexagon/imported/subinsns.idef | 152 ++
target/hexagon/imported/system.idef | 69 +
tests/tcg/configure.sh | 4 +-
tests/tcg/hexagon/Makefile.target | 49 +
tests/tcg/hexagon/first.S | 57 +
tests/tcg/hexagon/float_convs.ref | 748 ++++++++++
tests/tcg/hexagon/float_madds.ref | 768 ++++++++++
105 files changed, 22615 insertions(+), 3 deletions(-)
create mode 100644 default-configs/hexagon-linux-user.mak
create mode 100644 linux-user/hexagon/sockbits.h
create mode 100644 linux-user/hexagon/syscall_nr.h
create mode 100644 linux-user/hexagon/target_cpu.h
create mode 100644 linux-user/hexagon/target_elf.h
create mode 100644 linux-user/hexagon/target_fcntl.h
create mode 100644 linux-user/hexagon/target_signal.h
create mode 100644 linux-user/hexagon/target_structs.h
create mode 100644 linux-user/hexagon/target_syscall.h
create mode 100644 linux-user/hexagon/termbits.h
create mode 100644 target/hexagon/arch.h
create mode 100644 target/hexagon/attribs.h
create mode 100644 target/hexagon/attribs_def.h
create mode 100644 target/hexagon/conv_emu.h
create mode 100644 target/hexagon/cpu-param.h
create mode 100644 target/hexagon/cpu.h
create mode 100644 target/hexagon/cpu_bits.h
create mode 100644 target/hexagon/decode.h
create mode 100644 target/hexagon/fma_emu.h
create mode 100644 target/hexagon/gen_tcg.h
create mode 100644 target/hexagon/genptr.h
create mode 100644 target/hexagon/genptr_helpers.h
create mode 100644 target/hexagon/helper.h
create mode 100644 target/hexagon/hex_arch_types.h
create mode 100644 target/hexagon/hex_regs.h
create mode 100644 target/hexagon/iclass.h
create mode 100644 target/hexagon/insn.h
create mode 100644 target/hexagon/internal.h
create mode 100644 target/hexagon/macros.h
create mode 100644 target/hexagon/opcodes.h
create mode 100644 target/hexagon/printinsn.h
create mode 100644 target/hexagon/reg_fields.h
create mode 100644 target/hexagon/reg_fields_def.h
create mode 100644 target/hexagon/regmap.h
create mode 100644 target/hexagon/translate.h
create mode 100644 disas/hexagon.c
create mode 100644 linux-user/hexagon/cpu_loop.c
create mode 100644 linux-user/hexagon/signal.c
create mode 100644 target/hexagon/arch.c
create mode 100644 target/hexagon/conv_emu.c
create mode 100644 target/hexagon/cpu.c
create mode 100644 target/hexagon/decode.c
create mode 100644 target/hexagon/fma_emu.c
create mode 100644 target/hexagon/gdbstub.c
create mode 100644 target/hexagon/gen_dectree_import.c
create mode 100644 target/hexagon/gen_semantics.c
create mode 100644 target/hexagon/genptr.c
create mode 100644 target/hexagon/iclass.c
create mode 100644 target/hexagon/op_helper.c
create mode 100644 target/hexagon/opcodes.c
create mode 100644 target/hexagon/printinsn.c
create mode 100644 target/hexagon/q6v_decode.c
create mode 100644 target/hexagon/reg_fields.c
create mode 100644 target/hexagon/translate.c
create mode 100644 tests/tcg/hexagon/atomics.c
create mode 100644 tests/tcg/hexagon/clrtnew.c
create mode 100644 tests/tcg/hexagon/dual_stores.c
create mode 100644 tests/tcg/hexagon/exec_counters.c
create mode 100644 tests/tcg/hexagon/mem_noshuf.c
create mode 100644 tests/tcg/hexagon/misc.c
create mode 100644 tests/tcg/hexagon/preg_alias.c
create mode 100644 tests/tcg/hexagon/pthread_cancel.c
create mode 100644 tests/tcg/hexagon/sfminmax.c
create mode 100644 target/hexagon/Makefile.objs
create mode 100644 target/hexagon/README
create mode 100755 target/hexagon/dectree.py
create mode 100755 target/hexagon/gen_helper_funcs.py
create mode 100755 target/hexagon/gen_helper_protos.py
create mode 100755 target/hexagon/gen_op_attribs.py
create mode 100755 target/hexagon/gen_op_regs.py
create mode 100755 target/hexagon/gen_opcodes_def.py
create mode 100755 target/hexagon/gen_printinsn.py
create mode 100755 target/hexagon/gen_shortcode.py
create mode 100755 target/hexagon/gen_tcg_funcs.py
create mode 100755 target/hexagon/hex_common.py
create mode 100644 target/hexagon/imported/allidefs.def
create mode 100644 target/hexagon/imported/alu.idef
create mode 100644 target/hexagon/imported/branch.idef
create mode 100644 target/hexagon/imported/compare.idef
create mode 100644 target/hexagon/imported/encode.def
create mode 100644 target/hexagon/imported/encode_pp.def
create mode 100644 target/hexagon/imported/encode_subinsn.def
create mode 100644 target/hexagon/imported/float.idef
create mode 100644 target/hexagon/imported/iclass.def
create mode 100644 target/hexagon/imported/ldst.idef
create mode 100755 target/hexagon/imported/macros.def
create mode 100644 target/hexagon/imported/mpy.idef
create mode 100644 target/hexagon/imported/shift.idef
create mode 100644 target/hexagon/imported/subinsns.idef
create mode 100644 target/hexagon/imported/system.idef
create mode 100644 tests/tcg/hexagon/Makefile.target
create mode 100644 tests/tcg/hexagon/first.S
create mode 100644 tests/tcg/hexagon/float_convs.ref
create mode 100644 tests/tcg/hexagon/float_madds.ref
--
2.7.4
next reply other threads:[~2020-08-18 15:59 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-18 15:50 Taylor Simpson [this message]
2020-08-18 15:50 ` [RFC PATCH v3 01/34] Hexagon Update MAINTAINERS file Taylor Simpson
2020-08-26 1:55 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 02/34] Hexagon (target/hexagon) README Taylor Simpson
2020-08-26 2:06 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 03/34] Hexagon (include/elf.h) ELF machine definition Taylor Simpson
2020-08-26 2:06 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 04/34] Hexagon (target/hexagon) scalar core definition Taylor Simpson
2020-08-26 13:35 ` Richard Henderson
2020-08-26 23:51 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 05/34] Hexagon (target/hexagon) register names Taylor Simpson
2020-08-26 13:39 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 06/34] Hexagon (disas) disassembler Taylor Simpson
2020-08-26 13:52 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 07/34] Hexagon (target/hexagon) scalar core helpers Taylor Simpson
2020-08-26 14:16 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 08/34] Hexagon (target/hexagon) GDB Stub Taylor Simpson
2020-08-26 14:17 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 09/34] Hexagon (target/hexagon) architecture types Taylor Simpson
2020-08-26 14:19 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 10/34] Hexagon (target/hexagon) instruction and packet types Taylor Simpson
2020-08-26 14:22 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 11/34] Hexagon (target/hexagon) register fields Taylor Simpson
2020-08-26 14:29 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 12/34] Hexagon (target/hexagon) instruction attributes Taylor Simpson
2020-08-26 14:34 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 13/34] Hexagon (target/hexagon) register map Taylor Simpson
2020-08-26 14:36 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 14/34] Hexagon (target/hexagon) instruction/packet decode Taylor Simpson
2020-08-26 15:06 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 15/34] Hexagon (target/hexagon) instruction printing Taylor Simpson
2020-08-26 15:08 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 16/34] Hexagon (target/hexagon) utility functions Taylor Simpson
2020-08-26 15:10 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 17/34] Hexagon (target/hexagon/imported) arch import - macro definitions Taylor Simpson
2020-08-26 15:17 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 18/34] Hexagon (target/hexagon/imported) arch import - instruction semantics Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 19/34] Hexagon (target/hexagon/imported) arch import - instruction encoding Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 20/34] Hexagon (target/hexagon) generator phase 1 - C preprocessor for semantics Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 21/34] Hexagon (target/hexagon) generator phase 2 - generate header files Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 22/34] Hexagon (target/hexagon) generator phase 3 - C preprocessor for decode tree Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 23/34] Hexagon (target/hexagon) generater phase 4 - " Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 24/34] Hexagon (target/hexagon) opcode data structures Taylor Simpson
2020-08-26 15:25 ` Richard Henderson
2020-08-26 23:52 ` Taylor Simpson
2020-08-27 4:05 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 25/34] Hexagon (target/hexagon) macros to interface with the generator Taylor Simpson
2020-08-29 0:49 ` Richard Henderson
2020-08-30 20:30 ` Taylor Simpson
2020-08-30 20:59 ` Richard Henderson
2020-08-30 21:20 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 26/34] Hexagon (target/hexagon) macros referenced in instruction semantics Taylor Simpson
2020-08-29 1:16 ` Richard Henderson
2020-08-30 20:23 ` Taylor Simpson
2020-08-30 21:06 ` Richard Henderson
2020-10-08 15:00 ` Taylor Simpson
2020-10-08 17:30 ` Richard Henderson
2020-10-08 18:51 ` Taylor Simpson
2020-10-08 20:02 ` Richard Henderson
2020-10-08 20:54 ` Taylor Simpson
2020-10-09 12:59 ` Richard Henderson
2020-10-09 16:02 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 27/34] Hexagon (target/hexagon) instruction classes Taylor Simpson
2020-08-29 1:37 ` Richard Henderson
2020-08-30 20:04 ` Taylor Simpson
2020-08-30 20:43 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 28/34] Hexagon (target/hexagon) TCG generation helpers Taylor Simpson
2020-08-29 1:48 ` Richard Henderson
2020-08-30 19:53 ` Taylor Simpson
2020-08-30 20:52 ` Richard Henderson
2020-08-30 21:38 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 29/34] Hexagon (target/hexagon) TCG generation Taylor Simpson
2020-08-29 1:58 ` Richard Henderson
2020-08-30 19:49 ` Taylor Simpson
2020-08-18 15:50 ` [RFC PATCH v3 30/34] Hexagon (target/hexagon) TCG for instructions with multiple definitions Taylor Simpson
2020-08-29 2:02 ` Richard Henderson
2020-08-30 19:48 ` Taylor Simpson
2020-08-30 21:13 ` Richard Henderson
2020-08-30 21:30 ` Taylor Simpson
2020-08-30 23:26 ` Richard Henderson
2020-08-31 17:08 ` Taylor Simpson
2020-08-31 17:29 ` Richard Henderson
2020-08-31 18:14 ` Taylor Simpson
2020-08-31 19:20 ` Richard Henderson
2020-08-31 23:10 ` Taylor Simpson
2020-09-01 2:40 ` Richard Henderson
2020-09-01 4:17 ` Taylor Simpson
2020-09-24 2:56 ` Taylor Simpson
2020-09-24 15:03 ` Richard Henderson
2020-09-24 17:18 ` Taylor Simpson
2020-09-24 19:04 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 31/34] Hexagon (target/hexagon) translation Taylor Simpson
2020-08-29 2:49 ` Richard Henderson
2020-08-30 19:37 ` Taylor Simpson
2020-08-30 23:08 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 32/34] Hexagon (linux-user/hexagon) Linux user emulation Taylor Simpson
2020-08-29 2:59 ` Richard Henderson
2020-08-18 15:50 ` [RFC PATCH v3 33/34] Hexagon (tests/tcg/hexagon) TCG tests Taylor Simpson
2020-08-29 3:05 ` Richard Henderson
2020-09-01 9:57 ` Alessandro Di Federico
2020-08-18 15:50 ` [RFC PATCH v3 34/34] Hexagon build infrastructure Taylor Simpson
2020-08-29 3:19 ` Richard Henderson
2020-09-24 2:35 ` Taylor Simpson
2020-09-25 16:59 ` Philippe Mathieu-Daudé
2020-08-18 16:32 ` [RFC PATCH v3 00/34] Hexagon patch series no-reply
2020-08-29 3:27 ` Richard Henderson
2020-08-30 20:47 ` Taylor Simpson
2020-08-30 23:33 ` Richard Henderson
2020-08-31 17:57 ` Taylor Simpson
2020-08-31 20:43 ` Richard Henderson
2020-08-31 23:48 ` Taylor Simpson
2020-09-07 9:49 ` Rob Landley
2020-09-15 0:41 ` [EXT] " Brian Cain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1597765847-16637-1-git-send-email-tsimpson@quicinc.com \
--to=tsimpson@quicinc.com \
--cc=ale@rev.ng \
--cc=aleksandar.m.mail@gmail.com \
--cc=laurent@vivier.eu \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=riku.voipio@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).