diff options
author | sergei <sergei@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2013-10-28 14:31:36 +0000 |
---|---|---|
committer | sergei <sergei@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2013-10-28 14:31:36 +0000 |
commit | 2b33a17f89cee2dd87078c977bcefed68cea8769 (patch) | |
tree | 561f4d491824d5e164dfb810f25c556c1aa81102 /rtl | |
parent | 991e7ca0b3c2c4542f8b7a733336f1033356cfcd (diff) | |
download | fpc-2b33a17f89cee2dd87078c977bcefed68cea8769.tar.gz |
* Handle "SarInt64" always as internal procedure, introduced virtual method tinlinenode.first_sar that by default converts it into call to "fpc_sarint64" unless target CPU is 64-bit. This provides a point to insert target-specific optimizations.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25876 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl')
-rw-r--r-- | rtl/inc/systemh.inc | 4 | ||||
-rw-r--r-- | rtl/java/jsystemh.inc | 4 |
2 files changed, 2 insertions, 6 deletions
diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index 1102c2e7bf..cfc0d2c661 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -938,12 +938,10 @@ function SarLongint(Const AValue : Longint;Shift : Byte): Longint;[internproc:fp function SarLongint(Const AValue : Longint;const Shift : Byte = 1): Longint; {$endif FPC_HAS_INTERNAL_SAR_DWORD} -{$ifdef FPC_HAS_INTERNAL_SAR_QWORD} function SarInt64(Const AValue : Int64): Int64;[internproc:fpc_in_sar_x]; function SarInt64(Const AValue : Int64;Shift : Byte): Int64;[internproc:fpc_in_sar_x_y]; -{$else FPC_HAS_INTERNAL_SAR_QWORD} +{$ifndef FPC_HAS_INTERNAL_SAR_QWORD} function fpc_SarInt64(Const AValue : Int64;const Shift : Byte): Int64;compilerproc; -function SarInt64(Const AValue : Int64;const Shift : Byte = 1): Int64; [external name 'FPC_SARINT64']; {$endif FPC_HAS_INTERNAL_SAR_QWORD} {$ifdef FPC_HAS_INTERNAL_BSF} diff --git a/rtl/java/jsystemh.inc b/rtl/java/jsystemh.inc index 25b5157391..87f387ecaa 100644 --- a/rtl/java/jsystemh.inc +++ b/rtl/java/jsystemh.inc @@ -334,12 +334,10 @@ function SarLongint(Const AValue : Longint;Shift : Byte): Longint;[internproc:fp function SarLongint(Const AValue : Longint;const Shift : Byte = 1): Longint; {$endif FPC_HAS_INTERNAL_SAR_DWORD} -{$ifdef FPC_HAS_INTERNAL_SAR_QWORD} function SarInt64(Const AValue : Int64): Int64;[internproc:fpc_in_sar_x]; function SarInt64(Const AValue : Int64;Shift : Byte): Int64;[internproc:fpc_in_sar_x_y]; -{$else FPC_HAS_INTERNAL_SAR_QWORD} +{$ifndef FPC_HAS_INTERNAL_SAR_QWORD} function fpc_SarInt64(Const AValue : Int64;const Shift : Byte): Int64;compilerproc; -function SarInt64(Const AValue : Int64;const Shift : Byte = 1): Int64; [external name 'fpc_sarint64']; {$endif FPC_HAS_INTERNAL_SAR_QWORD} {$ifdef FPC_HAS_INTERNAL_BSF} |