Commit Graph

39404 Commits

Author SHA1 Message Date
sergei
823e3ea398 MIPS: reworked PIC/call code:
+ Favor 'weak' parameter in a_call_name of both thlcgmips and TCGMIPS.
* make_simple_ref and a_loadaddr_ref_reg: require input references to be 'raw' (no refaddr=addr_pic, etc) and do not use GP as base/index. If it's not true, raise an internal error. When addr_pic_call16 or so needs to be generated, it must be done without calling the mentioned methods.
* thlcgmips.a_call_name: generate PIC sequence for procedures declared as 'external', instead of 'cdecl', this is more correct because ABI has only one calling convention.
- make_simple_ref_fpu removed, there's no reason to handle references to floating-point data in different way.
- a_loadaddr_ref_cgpara override also removed, generic method does the job just well.
- thlcgmips.a_call_ref and a_call_reg overrides removed because indirect calls are now always done using $t9.

git-svn-id: trunk@23698 -
2013-03-05 19:31:20 +00:00
sergei
a1b50f643e - removed never used function.
git-svn-id: trunk@23697 -
2013-03-05 18:05:52 +00:00
pierre
f4b6625145 + Use __setlocale_mb_len_max_32 for netbsd as suggested by linker warning
git-svn-id: trunk@23696 -
2013-03-05 11:40:24 +00:00
yury
5bf237afc1 * Turn off assigning UnixGetModuleByAddrHook for Android, since dladdr() function is not available on old (1.x) Android versions.
git-svn-id: trunk@23695 -
2013-03-05 00:00:02 +00:00
yury
5d061a7efa * Do not use persistent register r5 in the library init code. It fixes crash during library load on some versions of Android. Issue #23974.
* Made the startup code Thumb-safe.

git-svn-id: trunk@23694 -
2013-03-04 23:49:41 +00:00
yury
63d1c3aa94 * Set default CPU armv5t for arm-android. Issue #23973.
git-svn-id: trunk@23693 -
2013-03-04 21:46:36 +00:00
florian
eb46359ae8 * marking r22827 as merged
git-svn-id: trunk@23692 -
2013-03-04 20:49:58 +00:00
florian
c5b8b9406b * merged r22818
git-svn-id: trunk@23691 -
2013-03-04 20:48:55 +00:00
sergei
6fcd9979dd + MIPS: doing progress with linker, implemented processing of local symbols in PIC code and stuff needed to link shared libraries.
git-svn-id: trunk@23690 -
2013-03-04 20:48:33 +00:00
yury
268b2d56d7 * Fixed displaying of compilation time in some cases. For example, if the compilation time is 0.99 seconds, it has been displayed as 0.10. Now it is correctly displayed as 1.0.
git-svn-id: trunk@23689 -
2013-03-04 16:02:51 +00:00
svenbarth
168c9d152f Small optimization for the search of operator overloads. Add a flag "sto_has_generic" to all symtables that contain an operator overload (the flag propagates up the owning symtables) and check this flag when searching for units with operators.
symconst.pas:
  + add "sto_has_operator" to "tsymtableoption"
pdecsub.pas:
  + include the flag "sto_has_operator" for all operator declarations and their owning symtables
htypechk.pas, tcallcandidates:
  * create_candidate_list: only check for operator overloads if the record does indeed declare some
  * collect_overloads_in_units: only check for operator overloads if the unit does indeed declare some
utils/ppudump.pp:
  + respect the new "sto_has_operator" flag

git-svn-id: trunk@23688 -
2013-03-04 16:02:18 +00:00
florian
9198630ce3 * fix armv7m compiler
git-svn-id: trunk@23686 -
2013-03-03 21:59:34 +00:00
pierre
90f4d8ddcd + Add .note.openbsd.ident section, contributed by Pascal Stumpf
git-svn-id: trunk@23685 -
2013-03-03 21:18:20 +00:00
sergei
6484911f05 * TExeOutput.FixupRelocations method made virtual.
* TElfExeOutput.MemPos_Start split into four smaller methods.

git-svn-id: trunk@23684 -
2013-03-03 20:01:54 +00:00
pierre
9c855c7c94 accept anyfile that has the same upeercase name for the mkAmbiguous case if FileNameCaseSensitive is true
git-svn-id: trunk@23683 -
2013-03-03 18:53:12 +00:00
florian
1eeeb309c7 * intial armv6m support, it is not working yet, constant pool insertation and conditional branch fixup is not working yet
git-svn-id: trunk@23682 -
2013-03-03 12:20:10 +00:00
pierre
dce8094a12 Commit regenerated file after commit 23608
git-svn-id: trunk@23681 -
2013-03-02 20:50:12 +00:00
yury
5e369ae7fc * Use UTF-8 as fallback code page on linux and ASCII on other unix systems.
git-svn-id: trunk@23680 -
2013-03-02 09:51:05 +00:00
pierre
72e81d4be8 Add netbsd x86_64 objects
git-svn-id: trunk@23679 -
2013-03-01 16:24:19 +00:00
pierre
e0f2953380 Add missing object files for haiku-i386
git-svn-id: trunk@23678 -
2013-03-01 16:07:25 +00:00
michael
6c0bcfd763 * Patch from Silvio Clecio to fix filename in FileFormPost
git-svn-id: trunk@23677 -
2013-03-01 14:40:19 +00:00
yury
c4ba95b227 * Use CP_ASCII as fallback in GetSystemCodepage to be compatible with cwstring.
git-svn-id: trunk@23676 -
2013-03-01 08:44:05 +00:00
sergei
1421998752 * MIPS register spilling: relocations are not needed to load constant values, and offset limit is 32767, not 4095.
git-svn-id: trunk@23675 -
2013-02-28 20:43:38 +00:00
yury
8bce7058fc * Build unixcp for android too.
git-svn-id: trunk@23674 -
2013-02-28 20:01:50 +00:00
yury
b0d79b7854 * Use UTF-8 as fallback in GetSystemCodepage.
git-svn-id: trunk@23673 -
2013-02-28 19:48:56 +00:00
yury
0ed82d7218 * Use cwstring on unix.
git-svn-id: trunk@23672 -
2013-02-28 19:32:06 +00:00
yury
ee0a338127 * Use the unixcp unit to set a default code page for ansistrings on unix-like systems.
git-svn-id: trunk@23671 -
2013-02-28 18:24:29 +00:00
yury
2b2a68446d * Added new unit unixcp. It contains stuff from winiconv.inc - a table to map Windows code page identifiers to locale names on unix. Also GetSystemCodePage function in this unit can be used to detect which code page is used currently.
* Build unixcp for all unix-like systems.
* Use the unixcp unit in cwstring instead of winiconv.inc.
- Deleted winiconv.inc
- Reverted r22410,r22411,r22428. The compiler will use the unixcp unit to get a default code page for ansistrings.

git-svn-id: trunk@23670 -
2013-02-28 18:21:28 +00:00
michael
b32e74c94c * Removed erroneously committed compacting code
git-svn-id: trunk@23669 -
2013-02-28 16:29:17 +00:00
michael
d02f0b3f54 * Remove erroneous space in front of float number
git-svn-id: trunk@23668 -
2013-02-28 14:41:14 +00:00
michael
08841d6894 * Handle HTTP_AUTHORIZATION
git-svn-id: trunk@23667 -
2013-02-28 11:21:16 +00:00
michael
81e2032bbe * Handle all methods
git-svn-id: trunk@23666 -
2013-02-28 11:20:49 +00:00
lacak
42d11a1274 fcl-db: base: mark ABookmark parameter of TDataset.GotoBookmark method as const.
In trunk TBookmark is of type array of bytes (TBytes), prior this it was Pointer (to memory block of BookmarkSize where is stored "bookmark data").
BufDatset uses GotoBookmark and passes address of bookmark, which is okay when TBookmark was pointer, but when it is dynamic array then on entry into method FPC_DYNARRAY_INCR_REF is called, where is accessed "array header" in unallocated memory, which leads to invalid pointer operation.
Making parameter as const will avoid invoking reference counting mechanism. Bug #23381. Discussed also in DB-Core ML.

git-svn-id: trunk@23665 -
2013-02-28 09:26:25 +00:00
Mattias Gaertner
e5f60c6229 tiff: read 1-bit white/black images, fixes mantis #23959
git-svn-id: trunk@23664 -
2013-02-26 14:58:51 +00:00
sergei
5812cf3b46 * MIPS: allocate 16-byte outgoing parameter area also for procedures declared as 'assembler' without 'nostackframe'. This is a half-measure because there is no way to determine correct size to allocate for such procedures (probably we must add some directive to specify it). The same generally applies to all targets with fixed stack, not just MIPS.
git-svn-id: trunk@23663 -
2013-02-25 22:47:09 +00:00
sergei
d2995cbf14 - Removed ConcatPasString procedure, it duplicates ConcatString (it the past they probably used to differ, but today both preserve null characters).
git-svn-id: trunk@23662 -
2013-02-25 22:09:39 +00:00
sergei
d190d4676b - MIPS: removed comment generation in function prologues, it clutters listing more than it helps. Also removed some unused variables.
git-svn-id: trunk@23661 -
2013-02-25 21:40:03 +00:00
pierre
f095c98e76 * move smartlink off to before interface
* Reorganize ifdef GDB_VXYZ part
  + Add code for LIBGDB_HAS_GET_STDIN (possibly set in gen-gdblib-inc.sh script).
  + Use GDB_USE_XSTRVPRINTF conditional.

git-svn-id: trunk@23660 -
2013-02-25 16:28:10 +00:00
pierre
3b1465f314 Do not set GDB_HAS_DEBUG_FILE_DIRECTORY for GDB 6.6 release
git-svn-id: trunk@23659 -
2013-02-25 16:01:09 +00:00
paul
535615dfa4 rtl: apply piece of changes to charset.pp from Inoussa (part of mantis #0022909)
git-svn-id: trunk@23658 -
2013-02-25 02:22:14 +00:00
paul
e549954de6 rtl:
* apply Inoussa changes to character.pas and related files (part of mantis #0022909)

git-svn-id: trunk@23657 -
2013-02-25 01:46:33 +00:00
svenbarth
db6385ef33 Added exception EObjectCheck for object reference check (runtime error 210).
rtl/objpas/sysconst.pp:
  + add resourcestring SObjectCheckError
rtl/objpas/sysutilh.inc:
  + add new Exception descendant EObjectCheck
rtl/objpas/sysutils.inc:
  + use EObjectCheck with message SObjectCheckError for runtime error 210

git-svn-id: trunk@23656 -
2013-02-24 22:22:38 +00:00
marco
5f0996d78d * add 2.6.2 to allowed computers. Allow 2.6.0 too for a while.
git-svn-id: trunk@23655 -
2013-02-24 19:46:26 +00:00
yury
3fbe35da4b * Reverted r23646, since missing clocale has been committed.
git-svn-id: trunk@23649 -
2013-02-24 13:29:30 +00:00
yury
65d610902b + Forgot to commit dummy clocale. It has caused Issue #23931.
git-svn-id: trunk@23648 -
2013-02-24 13:27:50 +00:00
svenbarth
d76ebd0748 Apply patch from lks (with a few adjustments). Fixes Mantis #23938.
gvector.pp:
  * more consistent formatting
  - remove "inline" directives in implementation section
  * use "Move" instead of a for-loop in Erase and Insert (while also respecting managed types) for performance improvement
  * set the removed entry in PopBack to Default(T) (also for managed types)
  * fix a bug in Erase which checked for "<= Size" instead of "< Size"

git-svn-id: trunk@23647 -
2013-02-23 21:34:47 +00:00
svenbarth
f229d601de Fix for Mantis #23931.
rtl/android/Makefile.fpc:
  * clocale.pp is located in $(UNIXINCDIR)

git-svn-id: trunk@23646 -
2013-02-22 17:32:58 +00:00
svenbarth
c21b34daf1 Fix for Mantis #23909.
gvector.pp, TVector.TVectorEnumerator:
  * the size of a vector is of type SizeUInt which is LongWord on 32 bit systems and QWord on 64 bit systems and which is in both cases not the same as Integer which is LongInt
  + add a boolean property to detect whether the first call to MoveNext was done
  * check in MoveNext whether the first call was done and return approbiate results
gvector.pp, TVector:
  + declare GetEnumerator as inline as well

git-svn-id: trunk@23645 -
2013-02-22 10:52:50 +00:00
sergei
354ebb822a * MIPS: fixed layout of stack frame in case procedure does only low-level calls (via a_call_name, etc.). A 16-byte outgoing parameter area must be allocated regardless of actual parameter count.
* Abort if attempting to emit a call without pi_do_call flag set, because the outgoing parameter area determines layout of temps and therefore cannot be created/changed during pass 2.
* Bypass g_concatcopy_move if procedure is a leaf one, due to the restriction mentioned above.

git-svn-id: trunk@23644 -
2013-02-21 20:57:38 +00:00
sergei
5d5d226487 * Applied a counterpart of r22318 to 64-bit mod/div routines.
git-svn-id: trunk@23643 -
2013-02-21 19:37:31 +00:00