Switch branches/tags
Commits on Jul 3, 2018
  1. i#2390 ind br: Emit NOPs instead of movk reg, #0. (#3084)

    fhahn committed Jul 3, 2018
    'movk reg, #0' is unnecessary, but currently the code expects a fixed size
    sequence at a few places, so we insert NOPs instead.
    Issue #2390
  2. i#3044 SVE encoder: Add sve_int_bin_pred_log group. (#3078)

    fhahn committed Jul 3, 2018
    This patch adds a new register type for SVE predicate registers
    (P0-P15) and support for the sve_int_bin_pred_log encoding group.
    The macros added follow the SVE assembly syntax, where the shared input
    and output register Zdn has to be supplied twice.
    Issue #3044
Commits on Jun 29, 2018
  1. i#3044 AArch64 SVE: Add Z registers and a simple encoding group. (#3073)

    fhahn committed Jun 29, 2018
    This patch adds a new register type for scalable vector (Z) registers
    and encoding/decoding support for the
    'SVE Integer Arithmetic - Unpredicated Group' encoding group.
    The specification can be found at
    Issue: #3044
Commits on Jun 27, 2018
  1. Bring aarch64/codec.txt and aarch64/codec.c in order. (#3067)

    fhahn committed Jun 27, 2018
    This is a cleanup patch order the operands in codec.txt and codec.c by
    bit-patterns, as originally intended.
    It also adds a Python script to check the order, which is run as part of
    the encoder/decoder generation.
Commits on Jun 26, 2018
  1. i#2626 AArch64 enc: Add FP data-processing instrs (3 sources) (#3063)

    fhahn committed Jun 26, 2018
    This patch adds support for the instructions in the Armv8-a
    'Floating-point data-processing' encoding groups with 3 sources.
    Issue #2626
  2. i#2626 AArch64 enc: Add FP data-processing instrs (2 sources) (#3062)

    fhahn committed Jun 26, 2018
    This patch adds support for the instructions in the Armv8-a
    'Floating-point data-processing' encoding groups with 2 sources.
    Issue #2626
Commits on Jun 25, 2018
  1. i#2626 AArch64 enc: Add FP data-processing instrs (1 source) (#3061)

    fhahn committed Jun 25, 2018
    This patch adds support for the instructions in the Armv8-a
    'Floating-point data-processing' encoding groups with 1 source.
    Issue #2626
Commits on Jun 20, 2018
  1. i#2626 AArch64 enc: Add encoding group SIMD three same & fp16 (#3058)

    fhahn committed Jun 20, 2018
    This commits adds the instructions from the Armv8-a
    'Advanced SIMD three same' and 'Advanced SIMD three same (FP16)'
    encoding groups. For the macros, all FP16 version are handled by
    the macros for 'Advanced SIMD three same'
    Issue #2626
Commits on Jun 19, 2018
  1. i#2626 AArch64 encode: Remove old patterns. (#3052)

    fhahn committed Jun 19, 2018
    This removes the existing autogenerated NEON patterns, after I re-worked the scripts to operate on encoding groups. Subsequent commits will add those instructions on a per-encoding group basis.
    Unfortunately this introduces a bit of churn, but it will allow us to nicely structure new patterns.
    Issue i#2626
Commits on May 31, 2018
  1. Remove use of deprecated qt5_use_modules. (#3038)

    fhahn committed May 31, 2018
    qt5_use_modules has been deprecated for a while and is not available in
    newer qt 5.11. The recommended workaround is to use the imported targets.
Commits on May 29, 2018
  1. Fix some GCC 8 warnings. (#3033)

    fhahn committed May 29, 2018
    statsx.h: String too long for buffer (50 chars)
    string.c: strncmp cannot place terminating 0.
    utils.c: sizeof(dst) instead of sizeof(src).
    drdeploy.c: readlink is defined with restrict pointers in standard.
  2. Silence -Wpsabi warning on ARM for drcachesim. (#3034)

    fhahn committed May 29, 2018
    GCC 6+ has a warning for an ABI change due to a bug introduced in GCC 5:
    As we are building all of drcachesim and not linking to other C++ code, we
    can just ignore it.
Commits on May 25, 2018
  1. Update core/arch/aarch64/ to work with Python 3. (#3029)

    fhahn committed May 25, 2018
    core/arch/aarch64/ now works with Python 2 and 3.
Commits on May 24, 2018
  1. i#2626 AArch64 encoder: Add isz opnd and vector ADD. (#3016)

    fhahn committed May 24, 2018
    This patch adds an isz operand to encode the vector element width for
    non-FP vector instructions. It also adds support for vector ADD to the
    encoder/decoder. Additional tests and macros will be added by a later
    Issue #2626
Commits on May 23, 2018
  1. i#2876 clang-format: Add first version of clang-format style. (#3012)

    fhahn committed May 23, 2018
    This patch adds a first version of a clang-format style definition for
    DynamoRIO. I think it is relatively close to the style guide, but
    I expect some more tweaking.
    Issue #2876
  2. i#2626 AArch64 encoder: Support for by-element vector instrs. (#3018)

    fhahn committed May 23, 2018
    This patch adds the operands required to add by-element vector
    instructions to codec.txt and adds the vector-by-element encoding of
    FMLA as an example. Additional tests and macros should be added once
    the script in the project-aarch64-generate-patterns branch gets updated.
    Issue #2626
Commits on May 22, 2018
  1. i#2626 AArch64 encoder: Simplify fsz/fsz16 operands. (#3017)

    fhahn committed May 22, 2018
    Currently both the fsz16 and fsz operands were looking at bits 21 and
    22, while they only need to look at bit 22. This fix allows us to use
    fsz/fsz16 for other encoding classes, like the ones used for indexed FP
    It also moves the operands to their right position.
    Issue #2626
Commits on May 18, 2018
  1. i#2626 AArch64 encoder: Fix comment. (#3014)

    fhahn committed May 18, 2018
    Address feedback from #3011
  2. i#2626 AArch64 encode: Add instr_is_encoding_possible. (#3011)

    fhahn committed May 18, 2018
    This patch implements instr_is_encoding_possible and encoding_possible
    using encode_common, which returns ENCFAIL in case of a failure. This
    is not the most efficient implementation, but we do not have encoding
    tables available in the AArch64 backend.
    As a test case, it includes a check to make sure the encoder rejects
    some invalid combinations of FMOV.
    Issue #2626
  3. i#2626 AArch64 encoder: Add dst as src for instrs reading it. (#3013)

    fhahn committed May 18, 2018
    Some instructions, like FMLA/FMLS also read the destination register.
    I think in the IR, we should have them as source registers too.
    I kept the INSTR_CREATE_ macros to not have a extra source operand, as
    this is closer to the AArch64 assembly syntax.
    Issue: #2626
Commits on May 16, 2018
  1. i#1569 AArch64: Fix macros to create AND,ANDs with imms. (#3010)

    fhahn committed May 16, 2018
    Instructions that take logical immediates are not encoded with shifts.
    Issue: #1569
  2. i#2626 AArch64 encoder: Add support for fmov GPR to FPR. (#3008)

    fhahn committed May 16, 2018
    This commit adds encoder/decoder support for fmov from GPRs to FPRs.
    Issue #2626
Commits on May 11, 2018
  1. Update reg_get_size to handle AArch64's XZR/WZR. (#3004)

    fhahn committed May 11, 2018
    This patch also adds a file for unit tests for the APIs exported from
    opnd.h: suite/tests/api/opnd-a64.c. For now it only contains tests for
    It also removes a ASSERT_NOT_IMPLEMENTED from reg_get_size. All AArch64
    registers should be supported, except some system registers.
Commits on May 9, 2018
  1. Bump required cmake version to 3.2. (#3000)

    fhahn committed May 9, 2018
    Bump cmake version to 3.2, which was released a few years ago and
    should be shipped with most recent distributions. This allows us to
    remove some code dealing with older cmake versions and fixes a bug
    related to multiple values as OUTPUT for add_custom_command.
    There probably are more opportunities for cleanups that I missed in
    my initial scan.
Commits on Apr 30, 2018
  1. Fix most warnings generated by Clang 5.0 on AArch64. (#2965)

    fhahn committed Apr 30, 2018
Commits on Apr 25, 2018
  1. Simplify Arm ifdefs slightly in emit_utils_shared.c (#2962)

    fhahn committed Apr 25, 2018
    The ifdef AARCH64 is nested inside a ifdef X86, so it should never
    be true I think. I suppose it was intended to mark the code path as
    not implemented on AArch64.
  2. Make arm/table_encode.c and decode_private.h agree on op_instr type. (#…

    fhahn committed Apr 25, 2018
    Remove unnecessary const from op_instr extern declaration, caught by
    GCC 7.3's -Wduplicate-decl-specifier.
    Thanks to Edmund Grimley-Evans <> for raising the
  3. i#2626 fp/simd encode: Add support for most FP Neon instructions. (#2951

    fhahn committed Apr 25, 2018
    This patch adds encoding & decoding support for most arithmetic FP Neon
    instructions. The structure of the generated macros and tests follows
    the style of #2896.
    codec.txt contains comments if not all encodings of an instruction are
    supported yet. Also missing are the Arm v8.3-a FCADD and FCMLA
    instructions, because their rotation arguments require a bit of special
    handling to get nice macros.
    Issue #2626
Commits on Apr 24, 2018
  1. Remove unused POST and PRE macros from clean_call_opt_shared.c (#2955)

    fhahn committed Apr 24, 2018
    Those macros are not used in the file and there is only one use of
Commits on Apr 23, 2018
  1. Make drhelper depend on gen_aarch64_codec. (#2944)

    fhahn committed Apr 23, 2018
    This fixes a build failure when drhelper gets built before other
    targets that depend on gen_aarch64_codec.
Commits on Apr 11, 2018
  1. Use Cmake to generate files from codec.txt automatically on AArch64. (#…

    fhahn committed Apr 11, 2018
    This patch removes
     * core/arch/aarch64/decode_gen.h,
     * core/arch/aarch64/encode_gen.h
     * core/arch/aarch64/opcode.h
     * core/arch/aarch64/opcode_names.h
    and instead adds Cmake rules to automatically generate them from
    The main advantage is that this dramatically reduces the diff for codec
    changes on AArch64, as it will not contain tons of changes in the
    auto-generated files.
  2. i#2898 sigsupend flaky: mark sigsuspend test as flaky on ARM. (#2922)

    fhahn committed Apr 11, 2018
    This is another flaky test on ARM.
    See issues #2898 and #2416.
Commits on Apr 9, 2018
  1. i1675 IT block: Use -mno-warn-deprecated on ARM with tests. (#2908)

    fhahn committed Apr 9, 2018
    This silences assembly deprecation warnings from some test cases. We might miss some valid assembly warnings, but the flag is only set when building tests. For builds without tests, we still get the warnings.
    Fixes #1675
Commits on Mar 23, 2018
  1. i#2626 fp/simd encode: Add support for vector and scalar FMUL. (#2896)

    fhahn committed Mar 23, 2018
    This uses the encoding scheme introduced in #2811.
    Everything expect the tests are auto-generated now.
  2. Ignore known failures on ARM to get precommit/postcommit green. (#2895)

    fhahn committed Mar 23, 2018
    I raised issue for the failing tests on ARM. Ignoring those failures in
    ARM pre/postcommit testing makes it easier to spot new regressions.
    Issues: #2416, #2892, #2893, #2894