Commit Graph

40136 Commits

Author SHA1 Message Date
paul
d38bd1b9bd compiler: remove dummy ado_none from tarraydefoption. It is probably a leftover from time when tarraydefoptions was not present, comment options
ppudump: simplify readarraydefoptions

git-svn-id: trunk@24456 -
2013-05-07 06:51:32 +00:00
nickysn
f1861a71d6 + fixed startup hang in the i8086-msdos rtl on systems without an FPU
git-svn-id: trunk@24455 -
2013-05-06 21:36:37 +00:00
paul
39cee28f01 compiler: don't write reference to objc classes/protocols when writing tkClassRef rtti
git-svn-id: trunk@24454 -
2013-05-06 13:12:09 +00:00
nickysn
b0f7786782 + added support for special versions of near data pointers associated with a x86 segment register. They are supported on all x86 platforms: i8086, i386 and x86_64
git-svn-id: trunk@24453 -
2013-05-05 17:22:37 +00:00
marco
833c9b7bc7 * More unicode fixes shlobj.
git-svn-id: trunk@24452 -
2013-05-05 15:00:36 +00:00
marco
912d8f1c52 * set namevalueseparator to =, mantis #24116
git-svn-id: trunk@24451 -
2013-05-05 14:04:15 +00:00
marco
548879f450 * set tchar to ansichar if ifndef unicode. Probably doesn't matter, since but
reads cleaner.

git-svn-id: trunk@24450 -
2013-05-05 10:25:10 +00:00
marco
3af8cab1de * corrections from Mantis #20194.
- tbitmapheader is not a redef, from redef -> struct
     - some -A types had char types that were $ifdef unicode dependent. Fixed.
     - some -A types had char types in numeric form (bchar), where Delphi
	uses Pascal char types (ansichar)  

git-svn-id: trunk@24449 -
2013-05-05 10:23:06 +00:00
marco
ea86dcb668 * parts of #23953 done. Deprecation of old shlobj structures that are still in unit windows. However shlobj first needs to honour ifdef unicode. It currently
only supports -A and -W variants, and not the suffixless aliases.

git-svn-id: trunk@24448 -
2013-05-05 09:37:00 +00:00
marco
f080e173c5 * some {$ifdef unicode} added. + FPC_OS_UNICODE shebang.
git-svn-id: trunk@24447 -
2013-05-05 09:32:24 +00:00
marco
c9dce154fd * add boolean that can be changed to avoid shutting down winsock. This can trouble other DLLs. Mantis #22597
git-svn-id: trunk@24446 -
2013-05-05 08:42:08 +00:00
sergei
7cfc737866 * MIPS: rewrote 32-bit code generation methods, reducing code duplication.
+ Implemented overflow checking for unsigned 32-bit addition and subtraction.
* Use optimize_op_const instead of custom optimizations.
* Change AND/OR/XOR into ANDI/ORI/XORI if they use immediate operands, and use correct range for these immediate operands, must be 0..65535 unlike -32768..32767 for arithmetic operations.
* Don't treat AND/OR/XOR as macros, no longer necessary.
* Don't treat BEQ/BNE as macros either.

git-svn-id: trunk@24445 -
2013-05-05 05:55:03 +00:00
paul
da35b3c601 compiler, rtl: write CodePage for AnsiString RTTI (Delphi compatible), change TTypeData appropriately + test
git-svn-id: trunk@24444 -
2013-05-05 05:05:08 +00:00
paul
a020440d48 rtl: minor formatting
git-svn-id: trunk@24443 -
2013-05-05 04:30:06 +00:00
paul
1c86a9482b rtl:
- add tkRecord to TTypeData (field and type names are taken from Delphi help)
  - add tkProcedure as alias to tkProcVar

git-svn-id: trunk@24442 -
2013-05-05 04:09:31 +00:00
paul
714511a4d9 compiler: typo
git-svn-id: trunk@24441 -
2013-05-05 03:46:42 +00:00
paul
5cd3f9d8fb compiler: don't write rtti for objc classes/protocols (a trial to fix build on mac)
git-svn-id: trunk@24440 -
2013-05-05 03:18:59 +00:00
florian
e6489ed7d2 * arm thumb: do not generate illegal ror instructions
git-svn-id: trunk@24439 -
2013-05-04 22:00:17 +00:00
marco
09e742f243 * add a -dfpc define to the resource compiler commandlines, which allows to make FPC specific exceptions in resource scripts. Mantis #24044
git-svn-id: trunk@24438 -
2013-05-04 21:25:36 +00:00
florian
ccdd4437d6 * arm thumb: do not cause bxx getting too long ranges when inserting constant blocks
git-svn-id: trunk@24437 -
2013-05-04 20:36:08 +00:00
sergei
a0d3750b81 + MIPS: implemented direct 32x32 to 64 bit multiplication.
git-svn-id: trunk@24436 -
2013-05-04 20:35:24 +00:00
marco
28f45559a9 * IOleControl and some other interfaces from #22442. safecall folded to function:hresult;stdcall; calls.
git-svn-id: trunk@24435 -
2013-05-04 20:22:44 +00:00
florian
7bea00e5fb * arm thumb: allow interface trampolines to non-virtual methods with large offsets
git-svn-id: trunk@24434 -
2013-05-04 19:54:03 +00:00
florian
1682e9a2b1 * detabbed
git-svn-id: trunk@24433 -
2013-05-04 19:39:12 +00:00
florian
ed2825fbb0 * arm thumb: handle constants in second_cmpsmallset correctly
git-svn-id: trunk@24432 -
2013-05-04 19:38:12 +00:00
florian
c087d97b96 * typo fixed
git-svn-id: trunk@24431 -
2013-05-04 19:37:34 +00:00
marco
bfeae5ee43 * IStreamPersistInit. Patch part of Mantis #22442 (but not all)
git-svn-id: trunk@24430 -
2013-05-04 18:30:15 +00:00
paul
2cbc061707 compiler: write rtti for pointeddef before classrefdef and pointerdef rtti
git-svn-id: trunk@24429 -
2013-05-04 17:12:52 +00:00
marco
a98ba0287d * TryGetValue, patch by Denis Volodarsky, mantis #24378
git-svn-id: trunk@24428 -
2013-05-04 16:50:19 +00:00
marco
ce6c393ce2 * use win32 dll names for win64. (win32->Windows), patch by Andrew Brunner, mantis #24346
git-svn-id: trunk@24427 -
2013-05-04 16:47:53 +00:00
florian
5582827ed0 * do not depend on sysutils because unicodedata is a very basic unit
git-svn-id: trunk@24426 -
2013-05-04 16:25:41 +00:00
paul
d18f273f67 compier, rtl: revert 24424 since it fails on some platforms
git-svn-id: trunk@24425 -
2013-05-04 16:16:30 +00:00
paul
e23534eec4 compiler, rtl: some rtti related changes:
- write pint instead of 32 bit for record field offset (compiler uses aintsize = pint in TRecordDef), use PtrInt in RTL for record reading
  - add tkRecord to TTypeData (field and type names are taken from Delphi help)
  - add tkProcedure as alias to tkProcVar

git-svn-id: trunk@24424 -
2013-05-04 16:05:04 +00:00
paul
802b7db26e rtl: fix TTypeData comments
git-svn-id: trunk@24423 -
2013-05-04 14:38:41 +00:00
paul
65877e7111 rtl: fix TTypeData declaration - FPC does not generate PPTypeInfo as Delphi do but PTypeInfo instead
git-svn-id: trunk@24422 -
2013-05-04 13:17:32 +00:00
paul
d90445e5ee compiler, rtl, tests: write Delphi compatible (more or less) type information for Class Reference and Pointer types (mantis #0024367)
git-svn-id: trunk@24421 -
2013-05-04 12:47:05 +00:00
svenbarth
930b76e8fb Fix compilation of WinCE. Change the fixed UNICODE define of WinCE to FPC_OS_UNICODE, so that it won't be undefined when changing the mode/string type and that the usage of a UNICODE API is independant of the mode.
Also adjusted all Windows (Win32/64/CE) units to define a "UNICODE" if "FPC_OS_UNICODE" is defined (except the Jedi units).
Also the common RTL units that checked for UNICODE now check for FPC_OS_UNICODE.

git-svn-id: trunk@24420 -
2013-05-04 11:06:32 +00:00
florian
1de40c8de7 * arm thumb: fix spilling with offsets >1020
git-svn-id: trunk@24419 -
2013-05-04 10:51:01 +00:00
sergei
504b6754b7 * MIPS small improvements:
* TCGMIPS.a_load_reg_reg: generate CPU instructions instead of macros
  * TCGMIPS.a_cmp_const_reg_label: load constant using a_load_const_reg instead of LI macro (it may also end up with LI, but tries to optimize when possible).
  - removed unused variables.

git-svn-id: trunk@24418 -
2013-05-04 07:33:34 +00:00
sergei
1f8bd4a2d1 + MIPS: initial target-specific unary minus node.
git-svn-id: trunk@24417 -
2013-05-04 07:19:08 +00:00
paul
17e7ef0d28 ppudump: fix help message
git-svn-id: trunk@24416 -
2013-05-04 02:23:39 +00:00
florian
6197330bad * arm thumb: take care of constant restrictions when creating interface wrappers for non-virtual methods
git-svn-id: trunk@24415 -
2013-05-03 21:12:16 +00:00
florian
f3b7f6197b * arm thumb: generate proper code for rol
git-svn-id: trunk@24414 -
2013-05-03 20:53:58 +00:00
florian
cec28ef512 * when inserting pc relative data blocks on arm thumb, avoid negative pc offsets, if needed, the data is copied
a short test with the rtl shows that this happens exactly once in the rtl, so it is feasible to do so

git-svn-id: trunk@24413 -
2013-05-03 20:45:26 +00:00
florian
1f8192b6da * indention fixes
* detabbed

git-svn-id: trunk@24412 -
2013-05-03 20:41:55 +00:00
yury
15b3695a0e * ppudump: Proper tag for a source file in XML.
git-svn-id: trunk@24411 -
2013-05-03 15:13:28 +00:00
yury
eb26ccfbe7 * ppudump: Proper output of Unicode string constants.
git-svn-id: trunk@24410 -
2013-05-03 15:04:50 +00:00
yury
906cd9d365 + ppudump: XML output.
git-svn-id: trunk@24409 -
2013-05-03 14:27:17 +00:00
yury
65d832420e * ppudump:
- Check PPU version to be the same as the current PPU version of the compiler. It prevents reading errors if a unit has wrong PPU version. The version check can be turned off using -S switch.
  - User WriteError() in appropriate places in the code.
  

git-svn-id: trunk@24408 -
2013-05-03 13:03:22 +00:00
yury
ad8f42cd29 * ppudump: JSON output of float, string, file, variant, undefined, formal definitions.
git-svn-id: trunk@24407 -
2013-05-03 12:28:19 +00:00