Skip to content

ARM64: Invalid decoding of constant for predicated instructions fadd, fsub, fsubr, fmul, fmax, fmaxnm, fmin, fminnm #2268

@TIHan

Description

@TIHan

ARM64 Example hex: 00805865

When using cstool, the output is:
fadd z0.h, p0/m, z0.h, #0.0

when it should be:
fadd z0.h, p0/m, z0.h, #0.5

There are more instructions (listed below) that have the incorrect interpretation of the i1 field. The decoder doesn't produce valid constants for those instructions.

FADD ., /M, .,
FMAX ., /M, .,
FMAXNM ., /M, .,
FMIN ., /M, .,
FMINNM ., /M, .,
FMUL ., /M, .,
FSUB ., /M, .,
FSUBR ., /M, .,

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions