arch-arm: Fix Sve Fcmla indexed instruction

Sve implementation of FCMLA indexed instruction was
incorrectly typed. This instruction is design to be used for
half-precision and single precision.

Change-Id: Ie529e21140ce5b26a8e72ac869a5422d32eba864
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28227
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Jordi Vaquero
2020-04-07 12:23:03 +02:00
parent 5b23b6ea01
commit 9bcfb78ec4
2 changed files with 3 additions and 3 deletions

View File

@@ -2799,12 +2799,12 @@ namespace Aarch64
case 2:
zm = (IntRegIndex) (uint8_t) bits(machInst, 18, 16);
imm = bits(machInst, 20, 19);
return new SveFcmlai<uint32_t>(machInst,
return new SveFcmlai<uint16_t>(machInst,
zda, zn, zm, rot, imm);
case 3:
zm = (IntRegIndex) (uint8_t) bits(machInst, 19, 16);
imm = bits(machInst, 20);
return new SveFcmlai<uint64_t>(machInst,
return new SveFcmlai<uint32_t>(machInst,
zda, zn, zm, rot, imm);
}
return new Unknown64(machInst);

View File

@@ -3558,7 +3558,7 @@ let {{
sveCmpInst('fcmuo', 'Fcmuo', 'SimdFloatCmpOp', fpTypes, fcmuoCode)
# FCMLA (indexed)
sveComplexMulAddInst('fcmla', 'Fcmlai', 'SimdFloatMultAccOp',
fpTypes[1:], predType = PredType.NONE)
fpTypes[:2], predType = PredType.NONE)
# FCMLA (vectors)
sveComplexMulAddInst('fcmla', 'Fcmlav', 'SimdFloatMultAccOp',
fpTypes, predType = PredType.MERGE)