diff --git a/compiler/arm/aasmcpu.pas b/compiler/arm/aasmcpu.pas index 47e5b4055d..a9edcf5a4c 100644 --- a/compiler/arm/aasmcpu.pas +++ b/compiler/arm/aasmcpu.pas @@ -901,7 +901,9 @@ implementation result := operand_read; //Thumb2 A_LSL, A_LSR, A_ROR, A_ASR, A_SDIV, A_UDIV, A_MOVW, A_MOVT, A_MLS, A_BFI, - A_SMMLA,A_SMMLS: + A_QADD, + A_PKHTB,A_PKHBT, + A_SMMLA,A_SMMLS,A_SMUAD,A_SMUSD: if opnr in [0] then result:=operand_write else diff --git a/compiler/arm/aoptcpu.pas b/compiler/arm/aoptcpu.pas index 06334d1027..ca501bafd2 100644 --- a/compiler/arm/aoptcpu.pas +++ b/compiler/arm/aoptcpu.pas @@ -1596,7 +1596,14 @@ Implementation A_ORR, A_MLA, A_MLS, - A_MUL: + A_MUL, + A_QADD,A_QADD16,A_QADD8, + A_QSUB,A_QSUB16,A_QSUB8, + A_QDADD,A_QDSUB,A_QASX,A_QSAX, + A_SHADD16,A_SHADD8,A_UHADD16,A_UHADD8, + A_SHSUB16,A_SHSUB8,A_UHSUB16,A_UHSUB8, + A_PKHTB,A_PKHBT, + A_SMUAD,A_SMUSD: begin { optimize