* omit several error messages when in_generic is true because the error can be checked only during specialisation, resolves the issue reported in #21592
git-svn-id: trunk@20699 -
Currently the ARM-Port uses generic functions for SwapEndian, which are
relativly slow.
This patch adds optimized functions for the 32 and 64-bit case, the 16
bit case is still handled with a normal function, while the generated
code is far from optimal, the inlining (which is not possible with
asm-functions) makes it faster than the optimized function.
Some Numbers from my 1.2GHz Kirkwood (ARMv5):
Old New Result
SwapEndian(Integer) 12.168s 5.411s 44.47%
SwapEndian(Int64) 168.28s 9.015s 5.36%
Testcode was
begin
I := $FFFFFFF;
while I > 0 do
begin
Val2 := MySwapEndian(Val);
Dec(I);
end;
end.
Currently only the ARM implementation is tested. ARMv6+ includes a rev
instruction, while I've implemented them, I was not able to test them.
git-svn-id: trunk@20685 -
compiled for that target (which is unrelated to SQLite, but that
set is also used to determine whether or not to compile fbindexdb,
which depends on that unit -- please fix the dependencies properly
when adding new units)
git-svn-id: trunk@20668 -
in LOC_CMMREGISTER, not in LOC_CFPUREGISTER (and they also are there in
case the softfp calling convention is used), and this change broke SPARC
git-svn-id: trunk@20667 -
for inherited calls (that is only required when not using them for
dispatch purposes, and calling an inherited method is obviously
a dispatch situation)
git-svn-id: trunk@20664 -
always points to the previous r7 on the stack (with the saved return
address coming right after it) so that the debugger and crashreporter
can use it for backtraces as specified in the ABI
o changed NR_FRAME_POINTER_REG and RS_FRAME_POINTER_REG from a symbolic
into a typed constant, and added a new method to tprocinfo that can
be used to initialze it (so it can be inited to r7/r11 depending on
the target platform)
* allow using r9 on Darwin, it was only used by the system on iOS up to
2.x, which we no longer support
* prefer using r9 and r12 before r4..r11 on Darwin, because they are
volatile and hence do not have to be saved
git-svn-id: trunk@20661 -
o new eabihf (hard float) abi
o vfpv3_d16 variant of VFP (default variant used by EABI assemblers: VFPv3
with only 16 double registers instead of 32) and pass it to GNU as
o make the odd numbered single precision floating point VFP registers
available for explicit allocation for use by the calling convention
* fixed copy/paste error in stdname of S30 register
-> use -dFPC_ARMHF to create an ARM eabi hard float compiler
(mantis #21554)
git-svn-id: trunk@20660 -
--This line, and those below, will be ignored--
M win/wininc/unidef.inc
M win/wininc/ascfun.inc
M win/wininc/ascdef.inc
M win/wininc/unifun.inc
git-svn-id: trunk@20655 -