Commit Graph

39327 Commits

Author SHA1 Message Date
sekelsenmat
0921df3191 Fixes a spelling mistake in TFPCustomFont
git-svn-id: trunk@23411 -
2013-01-16 15:10:42 +00:00
yury
2fc220cc6c * Regenerated makefiles.
git-svn-id: branches/targetandroid@23410 -
2013-01-16 14:52:36 +00:00
yury
3cd3b50104 * Fixed conflict of native android and java android targets.
git-svn-id: branches/targetandroid@23409 -
2013-01-16 14:46:02 +00:00
masta
fe520c215b New ARM Peephole optimizer FoldShiftLdrStr
This one folds
      mov r1, r2, lsl #2
      ldr/ldrb r0, [r0, r1]
into
      ldr/ldrb r0, [r0, r2, lsl #2]

There is still some room for improvement, maybe it would be better to do this before
the register allocator runs, as we'll currently waste a register (r1 in the above example)
in many cases. That would also allow to to fold more operations, because currently if r2
gets reused between the mov and ldr we'll not be able to do the optimization.

git-svn-id: trunk@23408 -
2013-01-16 14:37:28 +00:00
paul
e9615716c1 compiler: allow constructors in helpers for records
git-svn-id: trunk@23407 -
2013-01-16 13:47:22 +00:00
yury
281768b145 * Set stackalign field.
git-svn-id: branches/targetandroid@23406 -
2013-01-16 13:33:50 +00:00
yury
d26f0552a0 * Sync with trunk r23404.
* Regenerated makefiles.

git-svn-id: branches/targetandroid@23405 -
2013-01-16 13:21:51 +00:00
yury
87df3ab325 * Enable more tests for android.
git-svn-id: branches/targetandroid@23404 -
2013-01-16 10:57:51 +00:00
michael
cce67cf5ae * Fixed case where connection is closed gracefully (Bug ID 23386)
git-svn-id: trunk@23403 -
2013-01-16 10:57:47 +00:00
yury
87f14b072f * Use collation when comparing strings.
git-svn-id: branches/targetandroid@23402 -
2013-01-16 10:50:52 +00:00
yury
2e58240861 * If there is no HOME directory, the current dir must be used.
git-svn-id: branches/targetandroid@23401 -
2013-01-16 10:41:32 +00:00
yury
8333a4d000 * Fixed expanding ~ if there is no HOME env var set.
git-svn-id: branches/targetandroid@23400 -
2013-01-16 10:40:25 +00:00
pierre
2b300ec2b4 Add breakpoint at Verbose.GenerateError procedure
git-svn-id: trunk@23399 -
2013-01-16 09:46:34 +00:00
pierre
6d8b1e03d7 Increase status.errorcount only inside GenerateError procedure, to simplify debugging
git-svn-id: trunk@23398 -
2013-01-16 09:45:57 +00:00
Almindor
235bda8746 * remove old cdecl record hack, fixes linker errors with aspell on mac os x
git-svn-id: trunk@23397 -
2013-01-16 04:44:49 +00:00
paul
38da152b11 tests: fixed test
git-svn-id: trunk@23396 -
2013-01-16 03:46:35 +00:00
paul
b2a613c17f compiler: implement record constructors + tests
git-svn-id: trunk@23395 -
2013-01-16 02:07:42 +00:00
paul
51825b6f2e compiler: change ret_in_param to accept tabstractprocdef instead of tproccalloption to allow check more options (required for record constructor implementation)
git-svn-id: trunk@23394 -
2013-01-16 01:14:23 +00:00
sergei
4c84febfae * InterlockedIncrement/Decrement must return the modified value, not the initial one. Fixes a number of interface memory leaks in MIPS test suite. The functions remain not thread-safe yet.
git-svn-id: trunk@23393 -
2013-01-15 19:17:57 +00:00
sergei
b35d04ffa8 * MIPS: methodpointers must be compatible with records; since records are never passed by address in this ABI, so must be methodpointers. Fixes webtbs/tw9141.pp.
git-svn-id: trunk@23392 -
2013-01-15 19:09:19 +00:00
yury
5254f8e572 * Make sure that the thread has been started, before destroying the event.
git-svn-id: branches/targetandroid@23391 -
2013-01-15 12:12:56 +00:00
yury
4cec8df547 * Do not use DOS code pages for Android. Now all CP string tests pass on Android.
git-svn-id: branches/targetandroid@23390 -
2013-01-15 11:55:24 +00:00
yury
a5182d6487 * Use more common code pages 1251 and 1252 instead of old DOS code pages (not available on Android). There is Euro symbol character that has different code in 1251 and 1252 code pages. Use it for tests.
git-svn-id: branches/targetandroid@23389 -
2013-01-15 11:53:50 +00:00
sergei
d2758265e3 * MIPS int->real conversion: When converting unsigned to single, load it into 64-bit FP register, otherwise further subtracting a 64-bit offset leads to invalid result. Fixes tw17714.pp.
* The addend is endian-dependent, fixes tcnvint4.pp on big-endian targets.

git-svn-id: trunk@23388 -
2013-01-15 10:49:37 +00:00
sergei
b5eecab582 * Procvars (methodpointers) must be treated as records, too. Fixes tw12318.pp and tw14155.pp after r23377.
* Factored related code into a separate method, as it will probably need further refinement.

git-svn-id: trunk@23387 -
2013-01-15 10:39:14 +00:00
yury
09e2ec28e6 * Skip 2 tests for android, since they require local execution.
git-svn-id: branches/targetandroid@23386 -
2013-01-15 08:22:30 +00:00
yury
32551f3c6b * Fixed running library tests on android.
git-svn-id: branches/targetandroid@23385 -
2013-01-15 08:20:43 +00:00
svenbarth
c7a9e17bc5 Patch by Vasiliy Kevroletin. Fixes Mantis #23655.
compiler/node.pas, tnode.printnodeinfo:
  * write flags to file "t" instead of stdout

git-svn-id: trunk@23384 -
2013-01-15 06:04:10 +00:00
svenbarth
ccecf2c13c Fix comparisons (aka usage of flag/CCR register)
m68k/aasmcpu.pas, taicpu.spilling_get_operation_type:
  * add all Sxx instructions as "operand_write" instructions

m68k/n68kadd.pas, t68kaddnode.getresflags:
  * use the correct operation in case of swapped nodes

m68k/cgcpu.pas, tcg68k.g_flags2reg:
  - don't move a 0 to the register, because this will CLR it and thus the flags won't be valid anymore...
  - NEG would have been the wrong operation (NOT would have been correct), but it isn't needed anyway...
  * simplify the method by handling the address register case only when necessary

git-svn-id: trunk@23383 -
2013-01-14 20:31:15 +00:00
yury
9330507f8d * Implemented Unicode string manager for Android. It uses ICU library libicuuc.so. Note: ICU on Android has limited number of code pages. So don't expect support for DOS code pages or other exotic code pages.
git-svn-id: branches/targetandroid@23382 -
2013-01-14 14:20:44 +00:00
svenbarth
741992bae4 m68k/n68kmat.pas, tm68kshlshrnode.first_shlshr64bitint:
use RTL helper functions (through the inherited method) if we're not shifting by a constant

This fixes test/cg/tshlshr

git-svn-id: trunk@23378 -
2013-01-13 19:33:23 +00:00
sergei
162896e7d7 * MIPS code generator fixes and improvements:
- removed a_jmp_cond, it's not virtual and not applicable to this CPU.
* a_loadfpu_reg_cgpara: use direct register moves for simple destinations.
* g_concatcopy: don't take address of source/destination for small amounts of data if possible, for single 32-bit moves this reduces number of generated instructions from 4 to 2.
* g_intf_wrapper: 'Self' is in R4 (a0), not R2. Fixes test/tinterface1.pp.

* mips/cpupara.pas: for functions with result returned in parameter, pass its address in a0 only if result is a record. ABI does not specify behavior for types except records/unions. At the same time, Pascal code relies on the fact that results like strings/interfaces does not change their locations, i.e. "function foo(<self>): IInterface" can be invoked as "procedure foo(<self>, out obj)". This fixes test/tdel1.pp and some Variant-related tests.

git-svn-id: trunk@23377 -
2013-01-13 18:24:06 +00:00
sergei
32ffddaad8 + ELF linker back-ends for ARM and MIPS.
ARM status: roughly corresponds to i386 one, passes the test suite. Handles libraries, can link static libc code including basic PIC and TLS IE/LE stuff. Completely misses Thumb support. Also does not handle ABI-specific stuff, for this reason internally linked .so cannot be used for linking executables with ld. Little-endian only. Tested only on "versatilepb" QEMU virtual machine.

MIPS status: can link the compiler and at least some dynamic executables including fpmake. Some PIC support is present but almost untested. Specific header flags and sections are also not handled yet. Written to handle both endian, but tested for big-endian only ("malta" QEMU VM), including cross-linking from x86_64.

git-svn-id: trunk@23376 -
2013-01-13 18:05:19 +00:00
sergei
af4935e346 + Support dynamic copy relocations.
* For unresolved weak symbols, provide dynamic binding only if they are referenced via GOT or PLT (ld-compatible behavior).
* Made more TElfExeOutput properties/methods usable by descendant classes.
* x86_64/cpuelf.pas: some refactoring, handle DTPOFF relocations, prohibit TPOFF relocations in shared objects.
* i386/cpuelf.pas: set symref_from_text flags for copy relocations to work correctly.

git-svn-id: trunk@23375 -
2013-01-13 17:44:14 +00:00
sergei
a1503b51f2 + chmod 755 on executable files produced by internal linker. I missed this "small" detail for half a year because all development was going on a NTFS drive where everything is executable.
git-svn-id: trunk@23374 -
2013-01-13 17:18:11 +00:00
svenbarth
252744ad24 m68k/cgcpu.pas, tcg68k.g_concatcopy:
use the correct flag for the copy loop: we jump back to the copy code as long as the value is positive aka BPL instead of BMI

This fixes around 30 tests (it fixes a quite bit more, but now some other tests seem to be broken...)

git-svn-id: trunk@23373 -
2013-01-13 16:21:59 +00:00
marco
72d1b249db * Unblockfile to programmatically unblock MSIE downloads
git-svn-id: trunk@23372 -
2013-01-13 12:55:31 +00:00
marco
f08a1ed7c9 * fixed minor mistake in comment. Mantis #23631
git-svn-id: trunk@23371 -
2013-01-13 12:46:56 +00:00
sergei
4b925763c3 + Enable CPU-specific descendants to write specific dynamic tags.
+ Read version definitions from shared objects.

git-svn-id: trunk@23370 -
2013-01-13 06:36:39 +00:00
michael
0ee95ca5f9 * Undid patch to resolve dotted unit names, it breaks generation of FPC documentation
git-svn-id: trunk@23369 -
2013-01-12 16:08:40 +00:00
michael
3ec989ca8d * remove debug output
git-svn-id: trunk@23368 -
2013-01-12 15:16:48 +00:00
michael
6bdcfaa493 * Added dependency on opengl
git-svn-id: trunk@23367 -
2013-01-12 13:30:23 +00:00
michael
c6d58be3e2 * Added dependency on opengl
git-svn-id: trunk@23366 -
2013-01-12 13:30:18 +00:00
Jonas Maebe
f57f7fda78 * fixed case of unit name dependencies for MacOS unit
git-svn-id: trunk@23365 -
2013-01-11 17:22:30 +00:00
sergei
f98e09d86e - TObjData.sectiontype2options: removed oso_keep flags. They don't have any effect here because this function is used only during assembling, and oso_keep cannot be represented in object files and therefore gets lost before linking.
git-svn-id: trunk@23364 -
2013-01-11 17:14:44 +00:00
sergei
ad1621df3f * Revert part of r22548, correct fix for the issue is provided by r23188.
Only referencing data labels from code should change "GOT is needed" property. Writing data labels or referencing them from data should have no effect on it.

git-svn-id: trunk@23363 -
2013-01-11 15:31:12 +00:00
michael
f4c2ba9eb6 * Make sure that current method is removed from stack prior to executing it (bug ID #23629)
git-svn-id: trunk@23362 -
2013-01-11 08:42:40 +00:00
Tomas Hajny
67e1aeab5e + new language added (cs)
git-svn-id: trunk@23361 -
2013-01-10 23:43:01 +00:00
sergei
7969fb4ee1 - Removed TlsSize variable, it duplicates threadvarblocksize.
git-svn-id: trunk@23360 -
2013-01-10 20:13:08 +00:00
sergei
bc4c1149c3 + Native threadvar implementation for Win32 and Win64 (most of it, but not yet complete).
git-svn-id: trunk@23359 -
2013-01-10 19:13:02 +00:00