sergei
8dab34b31a
* fpc_char_to_unicodestr: call widestringmanager directly instead of nested char_to_uchar conversion.
...
* UnicodeToUtf8: calculate UCS4 value without three (!) temp string variables. Also removed separate word-sized variable and unsigned subtractions.
git-svn-id: trunk@20268 -
2012-02-06 10:22:17 +00:00
sekelsenmat
c72a639e7b
Fixes stack check crash in fmtbcd.pp see bug #21208
...
git-svn-id: trunk@20267 -
2012-02-06 09:07:35 +00:00
michael
723482c814
* Correctly free objects when destroying stringlist instance
...
git-svn-id: trunk@20265 -
2012-02-05 19:55:21 +00:00
pierre
b058593b53
* Fix compilation for cpu i386
...
git-svn-id: trunk@20264 -
2012-02-05 18:51:23 +00:00
sergei
c3b106fde3
* StringToOleStr(UnicodeString), reduced to single SetString call, this way it does not depend on private functions and does not require $ifdef's.
...
git-svn-id: trunk@20263 -
2012-02-05 18:43:20 +00:00
sergei
f07d02b427
- Removed string conversion helpers that are not actually used by compiler code generation (duplicated pwidechar/punicodechar stuff).
...
- Removed one copy of duplicated utf8 encode/decode procedures.
git-svn-id: trunk@20262 -
2012-02-05 18:01:04 +00:00
florian
a2009af76e
* updated MIPS code so the compiler gets through the system unit
...
git-svn-id: trunk@20259 -
2012-02-05 08:14:46 +00:00
florian
b8f322e0de
* continued to fix mips rtl compilation
...
git-svn-id: trunk@20257 -
2012-02-04 22:52:59 +00:00
pierre
30d9afe879
Add mipsel file including mips counterparts
...
git-svn-id: trunk@20256 -
2012-02-04 22:29:04 +00:00
florian
8b339ded7a
* started to fix the mips(el) linux rtl
...
git-svn-id: trunk@20255 -
2012-02-04 21:25:53 +00:00
florian
5a64b05cb4
* put generic mips code into mips dir
...
git-svn-id: trunk@20254 -
2012-02-04 20:14:41 +00:00
florian
2c76472bd5
* start to fix mips(el) startup code
...
git-svn-id: trunk@20253 -
2012-02-04 20:11:51 +00:00
florian
76d29ff172
* some Makefiles regenerated to support mips-linux
...
git-svn-id: trunk@20244 -
2012-02-04 09:50:03 +00:00
pierre
4a74ba14eb
+ Add tsiginfo type
...
git-svn-id: trunk@20242 -
2012-02-03 22:52:21 +00:00
pierre
9aa157b7fc
* Remove _strrchr call and add environ common
...
git-svn-id: trunk@20241 -
2012-02-03 22:51:57 +00:00
pierre
cc69ccff13
+ Add missing syscall_nr_sigtimedwait
...
git-svn-id: trunk@20240 -
2012-02-03 22:51:12 +00:00
sergei
8d26b3358f
RTL, wide/unicode strings cleanup:
...
- Removed outdated debugging code
- Removed DefaultWide2AnsiMove, using DefaultUnicode2AnsiMove instead.
- Removed unnecessary operations like SetLength before widestringmanager conversion calls and null-termination afterwards.
- Removed setting pointer to nil after fpc_wide/unicodestr_decr_ref.
git-svn-id: trunk@20231 -
2012-02-03 11:12:25 +00:00
sergei
df221e8196
* fpc_ansistr_concat, refactoring and minor fix:
...
* Assume code page of empty addend matching the destination (StringCodePage returns value of DefaultSystemCodePage for empty strings, causing unnecessary conversions if another addend has a non-default code page).
* Moved part with temp Unicodestring variables into separate procedure in order to avoid an implicit try..finally block in primary control flow.
* Renamed Size and Location varialbles into S1Len and S2Len.
git-svn-id: trunk@20230 -
2012-02-03 10:52:24 +00:00
sergei
c862aec17c
* cwstring.pp, Wide2AnsiMove: moved SetCodePage to the end, so it comes after the last SetLength. Necessary after r20209, because SetLength has been modified to always set the code page of its argument. Here it sets code page of 'dest' to CP_NONE, because dest is RawByteString.
...
(Before r20209, SetLength was preserving code page when the string was resized in place and had refcount=1)
git-svn-id: trunk@20214 -
2012-02-01 21:08:13 +00:00
sergei
a2233d7991
* fpc_ansistr_setlength: fixed/refactored:
...
* Handle codepage the same way in all control flow branches (was different for the cases of allocating a new string and reallocating an existing one)
* Don't assign intermediate values directly to var-parameter, use local pointer instead.
* Setting string pointer to nil after fpc_ansistr_decr_ref is no longer necessary.
- fpc_ansistr_copy: removed repeating index check and unecessary typecasts.
git-svn-id: trunk@20209 -
2012-02-01 16:27:24 +00:00
sergei
7ff76caa73
* Removed 'inline' attribute from 6 overloaded pos() functions which contain a managed typecast. Inlining it leads to noticeable increase in code size without any sensible speed improvement.
...
* Added 'const' modifier to the first argument of these functions in order to avoid creating a local copy.
git-svn-id: trunk@20207 -
2012-02-01 13:34:36 +00:00
pierre
fa44c8cf5a
+ Add explicit rules for softfpu sfpux80 and sfpu128 units
...
git-svn-id: trunk@20205 -
2012-01-31 16:00:45 +00:00
pierre
6e81fe6abc
+ Add two new sotfpuu units with x80 or 128 bit support
...
git-svn-id: trunk@20204 -
2012-01-31 15:58:56 +00:00
pierre
f4a9b3d73b
+ Allow compilation as an external unit
...
git-svn-id: trunk@20203 -
2012-01-31 15:57:45 +00:00
sergei
f18767f6a8
* generic fpc_shortstr_assign: cleaned up
...
* align(): tweaked priority of calculation, yields better constant folding when these functions are inlined (alignment argument is a constant in most cases)
git-svn-id: trunk@20197 -
2012-01-30 09:20:43 +00:00
sergei
97e6e1fafd
* Changed generic StrCopy and StrECopy to use IndexByte+Move:
...
o Makes behavior predictable in cases when source and destination strings happen to overlap.
o Removes need in CPU-specific implementations, at least for CPUs having optimized IndexByte and Move implementations.
git-svn-id: trunk@20196 -
2012-01-30 09:09:49 +00:00
sergei
6874aa9676
* Replaced i386 assembler IndexByte by more sophisticated implementation, larger in size but faster by factor from 2 (on Athlon X2 L310) to 5 (on Core2Duo E7200) for 512 byte buffers.
...
git-svn-id: trunk@20188 -
2012-01-28 17:54:36 +00:00
pierre
00ca9b4ce5
+ Support multithreaded windows executables inCheckPointer function
...
git-svn-id: trunk@20181 -
2012-01-26 13:52:51 +00:00
pierre
f80bc70707
+ Add _FPC_TlsSize public symbol for use by heaptrc unit
...
git-svn-id: trunk@20180 -
2012-01-26 13:51:34 +00:00
pierre
573102fa70
* Explicitly disable checkpointer for functions using GetEnvironmentStrings
...
git-svn-id: trunk@20179 -
2012-01-26 13:50:36 +00:00
marco
8c9a603597
* belongs to last commit, x86_64 part
...
git-svn-id: trunk@20173 -
2012-01-25 13:47:22 +00:00
marco
ed6a399ae2
* cleanup ELF ABI tag a bit. Set abitag version to 9.0 for now.
...
git-svn-id: trunk@20172 -
2012-01-25 13:46:58 +00:00
sergei
b9b960ebcf
* fpc_pchar_length: fixed exit without restoring EDI register if argument is nil, bug #21135 .
...
git-svn-id: trunk@20156 -
2012-01-22 23:52:46 +00:00
Tomas Hajny
5d82eaa628
* fix buggy stabs offset calculation
...
git-svn-id: trunk@20144 -
2012-01-21 20:43:03 +00:00
marco
a0b200db76
* Add dlvsym under ifdef ELF, defined ELF for the OSes I could check
...
(FreeBSD, OpenBSD, Linux) Mantis #18892
git-svn-id: trunk@20134 -
2012-01-21 11:56:40 +00:00
marco
77197cdc39
* Added CharInSet, Fixes #14599 , since issurrogate* already is in unit Character.
...
git-svn-id: trunk@20131 -
2012-01-20 22:10:32 +00:00
sergei
f136e44b6b
- RTL: cleaned up remaining 'decr_ref' routines (not removed completely due to bootstrapping needs, but aliased to 'finalize' ones).
...
git-svn-id: trunk@20130 -
2012-01-20 19:19:08 +00:00
pierre
7167b5b065
Fix cross rtl compilation problems
...
git-svn-id: trunk@20124 -
2012-01-20 16:39:57 +00:00
sergei
06192a8137
Values of managed variables are never ever used after decrementing reference on the variable, so there is no point of having a 'decrement reference' as a separate operation. We can always do 'finalize', i.e. clear the contents after decref.
...
* Modified fpc_ansistr_decr_ref and fpc_widestr_decr_ref so they always zero the pointer passed by reference. Other _decr_ref helpers already do it.
- Removed tcg.g_decrrefcount, calling cg.g_finalize instead.
- finalize_data_node and tcg.g_finalize: removed code generation for zeroing locations, because it is now done by RTL helpers. This further reduces code size.
As a total result of this change and r20118, the size of Lazarus executable is reduced by about 12%.
git-svn-id: trunk@20119 -
2012-01-19 23:11:09 +00:00
sergei
568ef396fb
* Added fpc_dynarray_assign (a helper for dynamic array assignments), added local access to fpc_intf_assign, and switched fpc_copy to use assignment helpers instead of incr_ref/decr_ref combinations.
...
git-svn-id: trunk@20114 -
2012-01-19 17:43:37 +00:00
pierre
ac80391c74
* Try to fix go32v2 problems related to DJGPP 2.04 CVS code using __environ as alias of _environ
...
git-svn-id: trunk@20113 -
2012-01-19 17:12:03 +00:00
sergei
a8fe9601de
* Get rid of using pdynarraytypeinfo, instead treat rtti as distinct 'header' and 'data' parts. In variants unit, use rtti declarations from typinfo directly. In system unit, declare private tdynarraytypedata record which (like typinfo.TTypeData) is not packed on alignment-sensitive targets. This simplifies code and removes scary pointer manipulations, should also yield better code on aligned targets.
...
git-svn-id: trunk@20106 -
2012-01-18 19:28:08 +00:00
marco
a7fb5c7e6c
* updated comments (Mantis #21107 )
...
git-svn-id: trunk@20102 -
2012-01-17 20:43:20 +00:00
marco
5ce5f4f2a9
* Init use_proxy to false, Mantis #21097
...
git-svn-id: trunk@20099 -
2012-01-17 07:57:39 +00:00
sergei
cbad0abab5
+ Platform-specific exception support for x86_64-win64. Enable by cycling with OPT=-dTEST_WIN64_SEH.
...
git-svn-id: trunk@20098 -
2012-01-16 23:13:31 +00:00
marco
1f40ff2362
* overloaded version of raiselastoserror that allows custom errorcodes
...
to be raised, patch by Cytax, Mantis #21092
git-svn-id: trunk@20084 -
2012-01-15 11:54:12 +00:00
florian
ce070c93fc
+ patch by Jeppe Johansen to support the SC32442B
...
git-svn-id: trunk@20081 -
2012-01-14 21:39:32 +00:00
florian
562932a2c9
* change dllparam into PtrInt, this is required for 64 bit systems, patch based on Gennadiy's patch in #21089 , resolves #21089
...
git-svn-id: trunk@20079 -
2012-01-14 20:21:52 +00:00
marco
51f99c57c3
* Add CancelIO, CancelIOex Mantis #21079
...
git-svn-id: trunk@20063 -
2012-01-13 09:02:54 +00:00
sergei
5658c30328
* Partially reverted r20041 to prevent IE200606085 on ARM platforms.
...
It appears that a function which is present in interface part and aliased to another function using "external name 'foo'" directive cannot be placed immediately before the function to which it is aliased. The body of first function consists of a single jump which fails to be correctly relocated.
git-svn-id: trunk@20053 -
2012-01-11 18:22:43 +00:00