From 15b617546e251a8967b0409c7fc08d20cb174434 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 1 Oct 2017 14:40:21 +0000 Subject: [PATCH] + call TX86AsmOptimizer.OptPass1VOP for logical operations as well git-svn-id: trunk@37367 - --- compiler/i386/aoptcpu.pas | 8 +++++++- compiler/x86/aoptx86.pas | 2 +- compiler/x86_64/aoptcpu.pas | 8 +++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/compiler/i386/aoptcpu.pas b/compiler/i386/aoptcpu.pas index a5e73e6fc3..8a9266cd51 100644 --- a/compiler/i386/aoptcpu.pas +++ b/compiler/i386/aoptcpu.pas @@ -1171,7 +1171,13 @@ begin A_VMULSD, A_VMULSS, A_VADDSD, - A_VADDSS: + A_VADDSS, + A_VANDPD, + A_VANDPS, + A_VORPD, + A_VORPS, + A_VXORPD, + A_VXORPS: if OptPass1VOP(p) then continue; A_MULSD, diff --git a/compiler/x86/aoptx86.pas b/compiler/x86/aoptx86.pas index 85c3e8b568..860fa66f60 100644 --- a/compiler/x86/aoptx86.pas +++ b/compiler/x86/aoptx86.pas @@ -1077,7 +1077,7 @@ unit aoptx86; ? } if GetNextInstruction(p,hp1) and - { we mix single and double opperations here because we assume that the compiler + { we mix single and double operations here because we assume that the compiler generates vmovapd only after double operations and vmovaps only after single operations } MatchInstruction(hp1,A_VMOVAPD,A_VMOVAPS,[S_NO]) and MatchOperand(taicpu(p).oper[2]^,taicpu(hp1).oper[0]^) and diff --git a/compiler/x86_64/aoptcpu.pas b/compiler/x86_64/aoptcpu.pas index afb06f5237..0d6edf89ce 100644 --- a/compiler/x86_64/aoptcpu.pas +++ b/compiler/x86_64/aoptcpu.pas @@ -85,7 +85,13 @@ uses A_VMULSD, A_VMULSS, A_VADDSD, - A_VADDSS: + A_VADDSS, + A_VANDPD, + A_VANDPS, + A_VORPD, + A_VORPS, + A_VXORPD, + A_VXORPS: result:=OptPass1VOP(p); A_MULSD, A_MULSS,