qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 00/35] Hexagon patch series


From: Alex Bennée
Subject: Re: [PATCH v6 00/35] Hexagon patch series
Date: Tue, 12 Jan 2021 19:42:00 +0000
User-agent: mu4e 1.5.7; emacs 28.0.50

Taylor Simpson <tsimpson@quicinc.com> writes:

> This series adds support for the Hexagon processor with Linux user support
>
> See patch 02/33 Hexagon README for detailed information.
>
> This series assumes int128_or() is implemented.
> https://lists.nongnu.org/archive/html/qemu-devel/2020-10/msg06004.html
>
> The series is also available at https://github.com/quic/qemu on branch
> small_series_v6.
>
>
> Once the series is applied, the Hexagon port will pass "make check-tcg".
> The series also includes Hexagon-specific tests in tcg/tests/hexagon.
>
> The final 3 patches in the series add docker support.  Thanks to Alessandro
> Di Federico <ale@rev.ng> and Brian Cain <bcain@quicinc.com> for making this
> happen.  The container files will build a Hexagon toolchain from source.
> Alternatively, this command will get a pre-built container
>     docker pull revng/qemu:debian-hexagon-cross
> Ultimately, we'll a method to create a container without building the 
> toolchain.
>
> Once the container is set up, here are the commands to verify the code:
>     mkdir build
>     cd build
>     ../configure --target-list=hexagon-linux-user
>     make
>     make check-tcg DOCKER_IMAGE=debian-hexagon-cross \
>         DOCKER_CROSS_CC_GUEST=hexagon-unknown-linux-musl-clang

check-tcg should be picking up the DOCKER_IMAGE and
DOCKER_CROSS_CC_GUEST values from the configure.sh script settings which
get dumped in $BLDIR/tests/tcg/config-hexagon.mak

You can run just the hexagon tests with:

  make run-tcg-tests-hexagon-linux-user

>
>
> *** 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
>     configure.sh                        Line over 90 characters
>     tests/tcg/configure.sh              Line over 90 characters
>     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
>     target/hexagon/gen_tcg_funcs.py     Line over 80 characters
>     scripts/qemu-binfmt-conf.sh         Line over 80 characters
>
> *** Changes in v6 ***
> Correct QEMU_GENERATE implementations for fLSBNEW0/fLSBNEW1
> Change Python file handling to use with statement
> Change import hex_common to be explicit
> Generator cleanup
>     Change N?N (new value) to value instead of register number for consistency
>     Fixed bud in reading control register pair
>     Add ctx_log_reg_write_pair
>     Clean up control reg offset from HEX_REG_SA0
> Fix errors in FP instructions uncovered by musl libc-tests
>     Added unit tests
>
> *** Changes in v5 ***
> Bug fixes
>     Properly implement circular addressing
>         memw(r1++I:circ(m0)) = r2
>     Make gen_cmpnd_cmp_jmp execute in 2 parts
>
> Address remaining blocker items from Richard Henderson's review.
>     Use qemu softfloat
>     Use const where appropriate
>     Break tcg_funcs_generated.h into two files - functions and table
>     Change struct and enum type names to CamelCase
>     Include packet in raw bytes in assembly
>     Use DEF_HELPER_FLAGS where possible
>     Fix merge_bytes endianness and overlap test by doing the store before load
>     Use bitmask instead of string in decoding
>     Add comments to decoder
>     Use qemu/int128.h
>     Use qemu/bitops.h for instruction attributes
>     Add bitmask for ctx->reg_log
>         Note we still have the array/idx for iteration during 
> gen_commit_packet
>     Change opcode_syntax to be created at compile time in gen_dectree_import.c
>     Remove unused tmp variables
>     Isolate hex_arch_types to imported files
>     Fix git am whitespace warnings
>
> Address items from Philippe Mathieu-Daudé's review
>     Split utility functions patch into 3 digestable patches
>     Fixed type "definition"
>     Change all exit codes to be either 0 or 1
>     Validated build with gcc 4.8, 5.5, and *****
>     Removed qemu/osdep.h and qemu/host-utils.h from macros.h
>
> Address items from Laurent Vivier's review
>     Don't filter out __NR_syscalls
>     Remove syscall_nr_generators from linux-user/hexagon/meson.build
>     Remove subdir('hexagon') from linux-user/meson.build
>     Generate syscall_nr.h from 5.5 Linux kernel
>     
>
> *** Changes in v4 ***
> Convert target/hexagon/Makefile.objs to meson.build
>
> Address portions of feedback from Richard Henderson.  Here is the table
> of items from Richard's review.
> Patch   Item                                                 Blocker Status
>         Use qemu softfloat                                   Yes
>         Use qemu decodetree.py                               No
> Several Use const when appropriate                           Yes
> Several Remove anything after g_assert_not_reached           Yes     DONE
> Several Fix log_store32/64 add/remove/add in patch series    Yes     DONE
> Several Follow naming guidelines for structs and enums       Yes
> 4       Move decls to cpu-param.h                            Yes     DONE
> 4       Remove CONFIG_USER_ONLY ifdef's                      Yes     DONE
> 4       Remove DEBUG_HEXAGON                                 Yes     Partially
> 4       Remove stack pointer modification hack               Yes     DONE
> 4       Add property x-lldb-compat to control output         Yes     DONE
> 6       Include instruction and raw bytes in disassembly     Yes
> 7       Use DEF_HELPER_FLAGS                                 No
> 07, 26  Endianness of merge_bytes                            Yes
> 7       Fix overlap test                                     Yes
> 7       Remove HELPER(debug_value)/HELPER(debug_value_i64)   Yes     DONE
> 9       Include "qemu/osdep.h" instead of <stdint.h>         Yes     DONE
> Several Stick with stdint.h types except in imported files   Yes     DONE
> 11      Remove description from reg field definitions        Yes     DONE
> 13      Move regmap.h into decode.c                          Yes     DONE
> 14, 27  Use bit mask instead of strings in decoding          No
> 14      Add comments to decoder                              Yes
> 16      Use qemu/int128.h                                    No
> 17      Squash patches dealing with imported files           Yes     DONE
> 24      Use qemu/bitops.h for instruction attributes         No
> 24      Fix initialization of opcode_short_semantics         Yes     DONE
> 24      Change if (p == NULL) { g_assert_not_reached(); }
>         to assert(p != NULL)                                 No      DONE
> 25      Expand DECL/READ/WRITE/FREE macros in generator      Yes     DONE
> 26      Rewrite fINSERT*, fEXTRACT*, f?XTN macros            Yes     DONE
> 26      Investigate fRND macro                               No      DONE
> 26      Change REG = REG to (VOID)REG to suppress warning    Yes     DONE
> 27      Remove multiple includes of imported/iclass.def      Yes     DONE
> 28      Move genptr_helpers.h into genptr.c                  Yes     DONE
> 28      Remove unneeded temps                                No      DONE
> 28      Use tcg_gen_deposit_tl and tcg_gen_extract_tl
>         when dealing with p3_0                               No      DONE
> 29      Size opcode_genptr[] properly and initialize
>         with [TAG] = generate_##TAG                          Yes     DONE
> 30      Don't generate helpers for overridden instructions   Yes     DONE
>         Don't include "gen_tcg.h" in helper.h                Yes     DONE
> 31      Use bitmask for ctx->reg_log instead of an array     Yes
> 31      Use tcg_gen_extract_i32 for gen_slot_cancelled_check Yes     DONE
> 31      Properly deal with reading instructions across
>         a page boundary and too many instructions before
>         finding end-of-packet                                Yes     DONE
> 31      Don't set PC at the beginning of every packet        No
> 31      Don't set slot_cancelled unless needed               No
> 31      Don't set hex_pred_written unless needed             No
> 31      Change cancelled variable to not local               Yes     DONE
> 31      Remove unnecessary temp                              Yes     DONE
> 31      Let tcg_gen_addi_tl check for zero                   Yes     DONE
> 31      Move gen_exec_counters to end of TB                  No
> 31      Move end of TB handling to hexagon_tr_tb_stop        Yes     DONE
>         Generate two lists for TCG functions instead of
>         the DEF_TCG_FUNC macro                               Yes     DONE
>
>
> *** 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
> Change fWRAP_* macros to fGEN_TCG_*
>
> *** Changes in v2 ***
> - Use scripts/git.orderfile
> - Create a README with the code overview in patch 0001
> - Change #define's in hex_regs.h to an enum
> - Replace hard coded disassembly buffer length (1028) with #define
> - Move Hexagon architecture types patch earlier in series
> - Replace #include standard header files with #include "qemu/osdep.h"
> - Prefix all header file #ifndef's with HEXAGON_
> - Update python version to python3
> - #include "tcg/tcg.h" in genptr_helpers.h
> - Change target/hexagon/Makefile.objs to support out-of-tree build
> - Updated copyright to include year 2020
> - Bug fixes
>     Fix some problems with HEX_DEBUG output
>     Fix bug in circular addressing
> - Optimizations to reduce the amount of TCG code generated
>     Change pred_written from an array to a bit mask
>
>
>
> Alessandro Di Federico (3):
>   Add Dockerfile for hexagon
>   Auto-import Docker support files
>   Add newline when generating Dockerfile
>
> Taylor Simpson (32):
>   Hexagon Update MAINTAINERS file
>   Hexagon (target/hexagon) README
>   Hexagon (include/elf.h) ELF machine definition
>   Hexagon (target/hexagon) scalar core definition
>   Hexagon (disas) disassembler
>   Hexagon (target/hexagon) register names
>   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) instruction/packet decode
>   Hexagon (target/hexagon) instruction printing
>   Hexagon (target/hexagon/arch.[ch]) utility functions
>   Hexagon (target/hexagon/conv_emu.[ch]) utility functions
>   Hexagon (target/hexagon/fma_emu.[ch]) utility functions
>   Hexagon (target/hexagon/imported) arch import
>   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
>   Hexagon (target/hexagon) instruction classes
>   Hexagon (target/hexagon) TCG generation
>   Hexagon (target/hexagon) TCG for instructions with multiple
>     definitions
>   Hexagon (target/hexagon) TCG for floating point instructions
>   Hexagon (target/hexagon) translation
>   Hexagon (linux-user/hexagon) Linux user emulation
>   Hexagon (tests/tcg/hexagon) TCG tests
>   Hexagon build infrastructure
>
>  default-configs/targets/hexagon-linux-user.mak     |    1 +
>  meson.build                                        |    1 +
>  include/disas/dis-asm.h                            |    1 +
>  include/elf.h                                      |    1 +
>  linux-user/hexagon/sockbits.h                      |   18 +
>  linux-user/hexagon/syscall_nr.h                    |  322 +++
>  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                |   36 +
>  linux-user/hexagon/termbits.h                      |   18 +
>  linux-user/qemu.h                                  |    2 +
>  linux-user/syscall_defs.h                          |   33 +
>  target/hexagon/arch.h                              |   35 +
>  target/hexagon/attribs.h                           |   30 +
>  target/hexagon/attribs_def.h                       |   97 +
>  target/hexagon/conv_emu.h                          |   31 +
>  target/hexagon/cpu-param.h                         |   29 +
>  target/hexagon/cpu.h                               |  159 ++
>  target/hexagon/cpu_bits.h                          |   59 +
>  target/hexagon/decode.h                            |   32 +
>  target/hexagon/fma_emu.h                           |   37 +
>  target/hexagon/gen_tcg.h                           |  319 +++
>  target/hexagon/genptr.h                            |   25 +
>  target/hexagon/helper.h                            |   85 +
>  target/hexagon/hex_arch_types.h                    |   38 +
>  target/hexagon/hex_regs.h                          |   83 +
>  target/hexagon/iclass.h                            |   50 +
>  target/hexagon/insn.h                              |   74 +
>  target/hexagon/internal.h                          |   39 +
>  target/hexagon/macros.h                            |  591 ++++++
>  target/hexagon/opcodes.h                           |   63 +
>  target/hexagon/printinsn.h                         |   28 +
>  target/hexagon/reg_fields.h                        |   36 +
>  target/hexagon/reg_fields_def.h                    |   41 +
>  target/hexagon/translate.h                         |   91 +
>  disas/hexagon.c                                    |   68 +
>  linux-user/elfload.c                               |   16 +
>  linux-user/hexagon/cpu_loop.c                      |   99 +
>  linux-user/hexagon/signal.c                        |  276 +++
>  target/hexagon/arch.c                              |  294 +++
>  target/hexagon/conv_emu.c                          |  177 ++
>  target/hexagon/cpu.c                               |  314 +++
>  target/hexagon/decode.c                            |  581 ++++++
>  target/hexagon/fma_emu.c                           |  701 +++++++
>  target/hexagon/gdbstub.c                           |   47 +
>  target/hexagon/gen_dectree_import.c                |  187 ++
>  target/hexagon/gen_semantics.c                     |   88 +
>  target/hexagon/genptr.c                            |  234 +++
>  target/hexagon/iclass.c                            |   73 +
>  target/hexagon/op_helper.c                         | 1016 ++++++++++
>  target/hexagon/opcodes.c                           |  142 ++
>  target/hexagon/printinsn.c                         |  158 ++
>  target/hexagon/q6v_decode.c                        |  385 ++++
>  target/hexagon/reg_fields.c                        |   27 +
>  target/hexagon/translate.c                         |  687 +++++++
>  tests/tcg/hexagon/atomics.c                        |  122 ++
>  tests/tcg/hexagon/clrtnew.c                        |   56 +
>  tests/tcg/hexagon/dual_stores.c                    |   60 +
>  tests/tcg/hexagon/fpstuff.c                        |  370 ++++
>  tests/tcg/hexagon/mem_noshuf.c                     |  328 +++
>  tests/tcg/hexagon/misc.c                           |  360 ++++
>  tests/tcg/hexagon/preg_alias.c                     |  106 +
>  tests/tcg/hexagon/pthread_cancel.c                 |   43 +
>  MAINTAINERS                                        |    8 +
>  disas/meson.build                                  |    1 +
>  scripts/gensyscalls.sh                             |    1 +
>  scripts/qemu-binfmt-conf.sh                        |    6 +-
>  target/hexagon/README                              |  235 +++
>  target/hexagon/dectree.py                          |  351 ++++
>  target/hexagon/gen_helper_funcs.py                 |  220 ++
>  target/hexagon/gen_helper_protos.py                |  150 ++
>  target/hexagon/gen_op_attribs.py                   |   40 +
>  target/hexagon/gen_op_regs.py                      |  111 +
>  target/hexagon/gen_opcodes_def.py                  |   37 +
>  target/hexagon/gen_printinsn.py                    |  174 ++
>  target/hexagon/gen_shortcode.py                    |   63 +
>  target/hexagon/gen_tcg_func_table.py               |   58 +
>  target/hexagon/gen_tcg_funcs.py                    |  532 +++++
>  target/hexagon/hex_common.py                       |  216 ++
>  target/hexagon/imported/allidefs.def               |   30 +
>  target/hexagon/imported/alu.idef                   | 1258 ++++++++++++
>  target/hexagon/imported/branch.idef                |  326 +++
>  target/hexagon/imported/compare.idef               |  619 ++++++
>  target/hexagon/imported/encode.def                 |  124 ++
>  target/hexagon/imported/encode_pp.def              | 2110 
> ++++++++++++++++++++
>  target/hexagon/imported/encode_subinsn.def         |  149 ++
>  target/hexagon/imported/float.idef                 |  312 +++
>  target/hexagon/imported/iclass.def                 |   51 +
>  target/hexagon/imported/ldst.idef                  |  286 +++
>  target/hexagon/imported/macros.def                 | 1526 ++++++++++++++
>  target/hexagon/imported/mpy.idef                   | 1208 +++++++++++
>  target/hexagon/imported/shift.idef                 | 1066 ++++++++++
>  target/hexagon/imported/subinsns.idef              |  149 ++
>  target/hexagon/imported/system.idef                |   65 +
>  target/hexagon/meson.build                         |  187 ++
>  target/meson.build                                 |    1 +
>  tests/docker/docker.py                             |   12 +-
>  .../debian-hexagon-cross.build-toolchain.sh        |  141 ++
>  .../docker/dockerfiles/debian-hexagon-cross.docker |   18 +
>  tests/tcg/configure.sh                             |    8 +-
>  tests/tcg/hexagon/Makefile.target                  |   48 +
>  tests/tcg/hexagon/first.S                          |   56 +
>  tests/tcg/hexagon/float_convs.ref                  |  748 +++++++
>  tests/tcg/hexagon/float_madds.ref                  |  768 +++++++
>  107 files changed, 23165 insertions(+), 6 deletions(-)
>  create mode 100644 default-configs/targets/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/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/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/fpstuff.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 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_func_table.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 target/hexagon/meson.build
>  create mode 100755 
> tests/docker/dockerfiles/debian-hexagon-cross.build-toolchain.sh
>  create mode 100644 tests/docker/dockerfiles/debian-hexagon-cross.docker
>  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


-- 
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]