target-mips: Add abs2008 flavor of <ABS|NEG>.<S|D>
commit6be77480052b1a71557081896e7080363a8a2f95
authorAleksandar Markovic <aleksandar.markovic@imgtec.com>
Fri, 10 Jun 2016 09:57:34 +0000 (10 11:57 +0200)
committerLeon Alrae <leon.alrae@imgtec.com>
Fri, 24 Jun 2016 12:41:46 +0000 (24 13:41 +0100)
tree0f4151e1bbf051be41ce5b9be8cf8b54dcf5e36e
parent40bd6dd456e61a36e454fb9dd2cc739b67c224cf
target-mips: Add abs2008 flavor of <ABS|NEG>.<S|D>

Updated handling of instructions <ABS|NEG>.<S|D>. Note that legacy
(pre-abs2008) ABS and NEG instructions are arithmetic (and, therefore,
any NaN operand causes signaling invalid operation), while abs2008
ones are non-arithmetic, always and only changing the sign bit, even
for NaN-like operands. Details on these instructions are documented
in [1] p. 35 and 359.

Implementation-wise, abs2008 versions are implemented without helpers,
for simplicity and performance sake.

[1] "MIPS Architecture For Programmers Volume II-A:
    The MIPS64 Instruction Set Reference Manual",
    Imagination Technologies LTD, Revision 6.04, November 13, 2015

Signed-off-by: Thomas Schwinge <thomas@codesourcery.com>
Signed-off-by: Maciej W. Rozycki <macro@codesourcery.com>
Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
Reviewed-by: Leon Alrae <leon.alrae@imgtec.com>
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
target-mips/translate.c