浏览代码

* Call fpc_shl/r_qword for qword types for first_shlshr64bitint method

git-svn-id: trunk@17620 -
tom_at_work 14 年之前
父节点
当前提交
e5fc169e57
共有 1 个文件被更改,包括 9 次插入2 次删除
  1. 9 2
      compiler/nmat.pas

+ 9 - 2
compiler/nmat.pas

@@ -558,11 +558,18 @@ implementation
         procname: string[31];
       begin
         result := nil;
+        { Normally already done below, but called again,
+          just in case it is called directly }
+        firstpass(left);
         { otherwise create a call to a helper }
+        if is_signed(left.resultdef) then
+          procname:='int64'
+        else
+          procname:='qword';
         if nodetype = shln then
-          procname := 'fpc_shl_int64'
+          procname := 'fpc_shl_'+procname
         else
-          procname := 'fpc_shr_int64';
+          procname := 'fpc_shr_'+procname;
         { this order of parameters works at least for the arm,
           however it should work for any calling conventions (FK) }
         result := ccallnode.createintern(procname,ccallparanode.create(right,