summaryrefslogtreecommitdiff
path: root/compiler/x86_64
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-16 22:46:25 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-16 22:46:25 +0000
commit95a407df60aebf754bf086ab87b84bd70c169237 (patch)
treea21a3e59e50a1a6d78adb410387409a0712bcd4e /compiler/x86_64
parent5d18cc11d752573cd00e5434261bbd483e13a9b9 (diff)
downloadfpc-95a407df60aebf754bf086ab87b84bd70c169237.tar.gz
* x86: some fixes to enable 8 and 16 bit operations
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48166 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/x86_64')
-rw-r--r--compiler/x86_64/nx64mat.pas3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/x86_64/nx64mat.pas b/compiler/x86_64/nx64mat.pas
index 14ce93c21f..74731bccac 100644
--- a/compiler/x86_64/nx64mat.pas
+++ b/compiler/x86_64/nx64mat.pas
@@ -43,6 +43,7 @@ implementation
uses
globtype,constexp,
+ cutils,
aasmdata,defutil,
pass_2,
ncon,
@@ -70,7 +71,7 @@ implementation
op:=OP_SHR;
opsize:=def_cgsize(resultdef);
- mask:=resultdef.size*8-1;
+ mask:=max(resultdef.size,4)*8-1;
{ load left operators in a register }
if not(left.location.loc in [LOC_CREGISTER,LOC_REGISTER]) or