diff --git a/compiler/mips/cgcpu.pas b/compiler/mips/cgcpu.pas index a916141aac..ba9c087d6b 100644 --- a/compiler/mips/cgcpu.pas +++ b/compiler/mips/cgcpu.pas @@ -550,6 +550,10 @@ begin list.concat(taicpu.op_reg_reg_const(A_ANDI, reg2, reg1, $ff)); OS_16: list.concat(taicpu.op_reg_reg_const(A_ANDI, reg2, reg1, $ffff)); +{$ifdef cpu64bitalu} + OS_64, + OS_S64, +{$endif cpu64bitalu} OS_32, OS_S32: done:=false; @@ -1237,8 +1241,12 @@ begin case size of OS_32: asmop:=A_MULTU; OS_S32: asmop:=A_MULT; +{$ifdef cpu64bitalu} + OS_64: asmop:=A_DMULTU; + OS_S64: asmop:=A_DMULT; +{$endif cpu64bitalu} else - InternalError(2014060802); + InternalError(2022020901); end; list.concat(taicpu.op_reg_reg(asmop,src1,src2)); if (dstlo<>NR_NO) then diff --git a/rtl/mips64/cpuh.inc b/rtl/mips64/cpuh.inc new file mode 100644 index 0000000000..e3f3caf416 --- /dev/null +++ b/rtl/mips64/cpuh.inc @@ -0,0 +1,15 @@ +{ + + This file is part of the Free Pascal run time library. + Copyright (c) 2016 by the Free Pascal development team. + + CPU specific system unit header file + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************}