summaryrefslogtreecommitdiff
path: root/rtl
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-09-06 21:41:35 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-09-06 21:41:35 +0000
commit81611fc5b51d07e1bc20e486ad4c700c9d109868 (patch)
treec88ec26eb2719125f4093315d082863213054482 /rtl
parent071039a231bbebd0c24035574964b72e24e7f3e0 (diff)
downloadfpc-81611fc5b51d07e1bc20e486ad4c700c9d109868.tar.gz
* 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
Diffstat (limited to 'rtl')
-rw-r--r--rtl/java/jcompproc.inc8
-rw-r--r--rtl/java/jsystemh.inc6
2 files changed, 13 insertions, 1 deletions
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 }