ARM: 2 opcodes for expdz instruction

Joe Abbey joe.abbey@gmail.com
Tue Aug 18 18:48:03 GMT 2020


The second form "0xee788160" is almost certainly supposed to be "expez"

http://netwinder.osuosl.org/pub/netwinder/docs/arm/ARM7500FEvB_5.pdf

Likely never noticed because:

It is recommended that the following floating-point operations are
implemented with
calls
• power
to an appropriate library (for example, the C library):
• reverse power
• polar angle
• logarithm base 10
• logarithm base e
• exponent
• sine
• cosine
• tangent
• arc sine
• arc cosine
• arc tangent
However, for backwards compatibility with existing floating-point code, the
following floating-point mnemonics are defined in the ARM floating-point
instruction set. These opcodes are treated by the FPA as undefined
instructions, and must be handled by support code, which is less efficient
than using library calls


On Tue, Aug 18, 2020 at 1:11 PM Martin Liška <mliska@suse.cz> wrote:

> Hello.
>
>
>
> It's a hairy code, but Richard added in
> 90e4755aeeb129a7d77334596bc7853ca7b95c67:
>
>
>
> $ git show 90e4755aeeb129a7d77334596bc7853ca7b95c67 | grep expdz
>
> +  {"expdz",      0xee7081e0, 3,  FPU_FPA_EXT_V1,   do_fpa_monadic},
>
> +  {"expdz",      0xee788160, 3,  FPU_FPA_EXT_V1,   do_fpa_monadic},
>
>
>
> So the instruction has 2 opcodes. Is it a typo?
>
>
>
> Thanks,
>
> Martin
>
>


More information about the Binutils mailing list