From 81611fc5b51d07e1bc20e486ad4c700c9d109868 Mon Sep 17 00:00:00 2001 From: jonas Date: Thu, 6 Sep 2012 21:41:35 +0000 Subject: * merged changes to systemh.inc/compproc.inc from r22289/r22290/r22310 git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22349 3ad0048d-3df7-0310-abae-a5850022a9f2 --- rtl/java/jcompproc.inc | 8 ++++++++ rtl/java/jsystemh.inc | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'rtl') diff --git a/rtl/java/jcompproc.inc b/rtl/java/jcompproc.inc index 93eb724dec..5594a59b4c 100644 --- a/rtl/java/jcompproc.inc +++ b/rtl/java/jcompproc.inc @@ -451,6 +451,14 @@ function fpc_shr_qword(value,shift : qword) : qword; compilerproc; function fpc_shl_int64(value,shift : int64) : int64; compilerproc; function fpc_shr_int64(value,shift : int64) : int64; compilerproc; {$endif FPC_INCLUDE_SOFTWARE_SHIFT_INT64} + + +function fpc_popcnt_byte(AValue : Byte): Byte;compilerproc; +function fpc_popcnt_word(AValue : Word): Word;compilerproc; +function fpc_popcnt_dword(AValue : DWord): DWord;compilerproc; +function fpc_popcnt_qword(AValue : QWord): QWord;compilerproc; + + {$ifndef FPUNONE} function fpc_abs_real(d : ValReal) : ValReal;compilerproc; function fpc_arctan_real(d : ValReal) : ValReal;compilerproc;{$ifdef MATHINLINE}inline;{$endif} diff --git a/rtl/java/jsystemh.inc b/rtl/java/jsystemh.inc index 9d1fc29b17..ccc85e0a19 100644 --- a/rtl/java/jsystemh.inc +++ b/rtl/java/jsystemh.inc @@ -354,7 +354,7 @@ function SarInt64(Const AValue : Int64;const Shift : Byte = 1): Int64; [external {$endif} {$ifdef FPC_HAS_INTERNAL_BSR} -{$if defined(cpui386) or defined(cpux86_64)} +{$if defined(cpui386) or defined(cpux86_64) or defined(cpuarm)} {$define FPC_HAS_INTERNAL_BSR_BYTE} {$define FPC_HAS_INTERNAL_BSR_WORD} {$define FPC_HAS_INTERNAL_BSR_DWORD} @@ -408,6 +408,10 @@ function BsrQWord(Const AValue : QWord): cardinal;[internproc:fpc_in_bsr_x]; function BsrQWord(Const AValue : QWord): cardinal;{$ifdef SYSTEMINLINE}inline;{$endif} {$endif FPC_HAS_INTERNAL_BSR_QWORD} +function PopCnt(Const AValue: Byte): Byte;[internproc:fpc_in_popcnt_x]; +function PopCnt(Const AValue: Word): Word;[internproc:fpc_in_popcnt_x]; +function PopCnt(Const AValue : DWord): DWord;[internproc:fpc_in_popcnt_x]; +function PopCnt(Const AValue : QWord): QWord;[internproc:fpc_in_popcnt_x]; {$ifndef FPUNONE} { float math routines } -- cgit v1.2.1