From 552ab2938e3237ef9470080fe446d72b5d7198d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A1roly=20Balogh?= <karoly@freepascal.org>
Date: Wed, 12 Mar 2014 04:16:52 +0000
Subject: [PATCH] avoid some unnecessary sign extensions

git-svn-id: trunk@27111 -
---
 compiler/m68k/cgcpu.pas | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/compiler/m68k/cgcpu.pas b/compiler/m68k/cgcpu.pas
index 6f87428b6f..f8d2117b58 100644
--- a/compiler/m68k/cgcpu.pas
+++ b/compiler/m68k/cgcpu.pas
@@ -936,7 +936,8 @@ unit cgcpu;
          list.concat(instr);
 
          { zero/sign extend register to 32-bit }
-         sign_extend(list, fromsize, reg2);
+         if tcgsize2size[fromsize]<tcgsize2size[tosize] then
+           sign_extend(list, fromsize, reg2);
       end;
 
 
@@ -953,7 +954,8 @@ unit cgcpu;
            size:=tosize;
          list.concat(taicpu.op_ref_reg(A_MOVE,TCGSize2OpSize[size],href,register));
          { extend the value in the register }
-         sign_extend(list, fromsize, register);
+         if tcgsize2size[fromsize]<tcgsize2size[tosize] then
+           sign_extend(list, fromsize, register);
       end;