Commit Graph

36512 Commits

Author SHA1 Message Date
tom_at_work
a7b48be598 bugfixes:
- do not compile ipc unit for android, not supported
- fix geterrnolocation external name
- implement dummy getdomainname; does not exist in android
- remove wrong 'if defined(android)' clauses

git-svn-id: branches/targetandroid@21065 -
2012-04-26 13:15:52 +00:00
tom_at_work
f1fed11cfa - missing makefile
git-svn-id: branches/targetandroid@21063 -
2012-04-26 09:53:37 +00:00
tom_at_work
c520f713f4 - commit missing new files
git-svn-id: branches/targetandroid@21062 -
2012-04-26 09:41:13 +00:00
tom_at_work
acbc94e0fd - initial support for the android/arm target in the compiler; resulting .so's can be used for Android/ARM app development.
- basic rtl support using system calls
- fp(c)make/fppkg/makefile support

todo:
- revisit systems/t_android.pas: mostly duplicate with t_linux.pas, containing
lots of unnecessary code
- revisit rtl changes
- android ndk header translation import
- better app build/packaging support
- android/x86 support

git-svn-id: branches/targetandroid@21061 -
2012-04-26 09:36:42 +00:00
tom_at_work
61317532fe branch for android target
git-svn-id: branches/targetandroid@21060 -
2012-04-26 08:39:16 +00:00
paul
a26bc50ca6 compiler: change ShortString->(Some)String and AnsiString->(Some)String overload precedence both for variables and string constants, change unicode constant type from widestring to unicodestring (Delphi compatibility)
new ShortString->(Some)String precedence: ShortString, UTF8String, AnsiString, AnsiString(CodePage) and RawByteString, UnicodeString, WideString and other string types
new AnsiString->(Some)String precedence: RawByteString, UTF8String, AnsiString, AnsiString(CodePage), UnicodeString, WideString, ShortString and other string types

The new logic makes UTF8String more preferrable than other AnsiString types, AnsiString more preferrable than other  AnsiStrings(codepage) and also makes UnicodeString more preferrable than WideString.

git-svn-id: trunk@21057 -
2012-04-26 02:33:57 +00:00
Jonas Maebe
9d1063f94c * adjustments/fixes for AIX/ppc64
git-svn-id: trunk@21053 -
2012-04-25 20:28:32 +00:00
Jonas Maebe
0278d67764 * use generic ppc version of a_loadaddr_ref_reg() for AIX/ppc64
* also recognize addr_pic_no_got as a PIC'ed address

git-svn-id: trunk@21052 -
2012-04-25 20:28:27 +00:00
Jonas Maebe
b33b744f78 * enabled null pointer load checking for AIX/ppc64
git-svn-id: trunk@21051 -
2012-04-25 20:28:23 +00:00
Jonas Maebe
cec20e1c34 * specify the branch opcode to use for a_call_name_direct/a_jmp_name_direct,
because it's sometimes different for AIX and other platforms (AIX uses
    absolute branches for entry/exit code helpers)

git-svn-id: trunk@21050 -
2012-04-25 20:28:18 +00:00
Jonas Maebe
3fc1a274c8 - removed ifdefed/inactive "ti386addnode.second_addmmx" from ppc code
generator

git-svn-id: trunk@21049 -
2012-04-25 20:28:14 +00:00
Jonas Maebe
cecdff01e0 * corrected sharedClibext for AIX/ppc32
git-svn-id: trunk@21048 -
2012-04-25 20:28:09 +00:00
Jonas Maebe
52d1172f6d * correctly call assembler for AIX/ppc64
* corrected target flags for AIX/ppc64
  * corrected some file extensions for AIX/ppc64

git-svn-id: trunk@21047 -
2012-04-25 20:28:05 +00:00
Jonas Maebe
d43387dff8 * equivalent of r20829 for AIX/ppc64 (and linux/ppc64): automatically create
dotted names when calling functions from assembler

git-svn-id: trunk@21046 -
2012-04-25 20:28:00 +00:00
Jonas Maebe
b99a8c129d * write pointer data on AIX/ppc64 using .vbyte rather than using .llong
(= equivalent of gas .quad), because .llong forces the alignment to
    8 bytes and this causes problems with some typed constant records (such
    as RTTI)

git-svn-id: trunk@21045 -
2012-04-25 20:27:56 +00:00
Jonas Maebe
6502717e67 * align all code/data sections to sizeof(pint), instead of sometimes
to 0 or 1 (section alignment <> alignment of individual data
    elements in section on some platforms, such as AIX)
  * set constalignmin and varalignmin to 8 bytes for AIX/ppc64

git-svn-id: trunk@21044 -
2012-04-25 20:27:41 +00:00
marco
e59be6884e * Some minor changes that make the recent changes more backwards compatible. Mantis #21837
git-svn-id: trunk@21043 -
2012-04-25 19:47:54 +00:00
sergei
5b09fa8a8c * Changed tagVariant.pbstrVal to ^WideString and added a comment about impossibility of having managed members in this record (Mantis #21075).
git-svn-id: trunk@21042 -
2012-04-25 18:14:47 +00:00
marco
6b93cbcbea * Fix for #21636, TFPSList.Pack several fixes.
git-svn-id: trunk@21039 -
2012-04-25 17:25:00 +00:00
marco
69fbbcedf3 * fix passing of only one parameter on non unix platforms. Mantis #21630
git-svn-id: trunk@21038 -
2012-04-25 17:21:16 +00:00
marco
8f39076a69 * changed tbookmark to tbytes, bookmarkstr to ansistring. Delphi 2009+ compat.
git-svn-id: trunk@21037 -
2012-04-25 16:51:05 +00:00
sergei
5f93d9992a * Ignore FPU/MM registers in tcg.(de)allocallcpuregisters if they are not used in current procedure. This is consistent with logic of tcgcallnode and removes a lot of useless xmm regallocs on win64.
git-svn-id: trunk@21036 -
2012-04-25 15:42:50 +00:00
sergei
3edaa66ee7 * For Win64, handle environment variables the same way as on Win32 (the generic version of GetEnvPChar does not return nil for non-existent environment variables).
git-svn-id: trunk@21035 -
2012-04-25 15:28:55 +00:00
sergei
6fd9dc6d32 * Fixed 64-bit compilation warnings (Integer -> PtrUInt)
git-svn-id: trunk@21034 -
2012-04-25 11:26:00 +00:00
Legolas
0976d0304f * Updated libogcfpc to ver.1.8.11 and devkitPPC to r26
git-svn-id: trunk@21033 -
2012-04-25 08:24:27 +00:00
Legolas
6bf0bc70a1 * Updated libndsfpc to ver.1.5.6 and devkitARM to r38
git-svn-id: trunk@21032 -
2012-04-25 08:23:07 +00:00
pierre
1b3fd997fc + Regenerate all Makefiles's after adding x86_64 netbsd target
git-svn-id: trunk@21031 -
2012-04-24 23:15:18 +00:00
pierre
1b6c45455e + Add x86_64 netbsd target
git-svn-id: trunk@21030 -
2012-04-24 23:12:30 +00:00
pierre
2684c3fec4 Define USE_SIGACTION_SIGTRAMP for x86_64
git-svn-id: trunk@21029 -
2012-04-24 23:06:22 +00:00
pierre
e0aa5839a9 * Add missing sc_arg6 to sc_arg9 fields in x86_64 SigContext record
git-svn-id: trunk@21028 -
2012-04-24 23:05:20 +00:00
pierre
23f21254bd + Add USE_SIGACTION_SIGTRAMP
git-svn-id: trunk@21027 -
2012-04-24 23:03:08 +00:00
florian
13e152f8a9 * even if currency is handle by an int64, it needs no extra handling in handle_default
git-svn-id: trunk@21025 -
2012-04-24 18:47:58 +00:00
florian
aa2a9dbf2e patches by Nico Erfurth to improve the arm peephole optimizer:
* Introduce MatchInstruction and MatchOperand

MatchInstruction allows to match an instruction by condition and
oppostfix. MatchOperand checks if an operand is a register and matches
another operand. In the future this could be overloaded with other
versions not only accepting TRegister.

* Optimize cmp,moveq,movne sequence on ARM

This patch implements an peephole optimizer for the following sequence:

  cmp   reg,const1
  movne reg,const2
  moveq reg,const1

* Small improvements to the ARM peephole optimizer

Most instructions in the ARM ISA have taicpu(p).oper[0]^.typ = top_reg
as the only option, so there is no need to check for it if we're
looking at those instructions.

* Remove redundant mov instructions on ARM

This is an addition to the ARM PeepHole Optimizer.
It folds code like this:

mov reg1, reg2
add reg1, reg1, (const|reg)

git-svn-id: trunk@21024 -
2012-04-24 18:25:19 +00:00
marco
7800cd4ff5 * Cleanup of adding records to bufdatasets with indexes. Mantis #20514, patch by Lacak2.
git-svn-id: trunk@21023 -
2012-04-24 17:47:18 +00:00
pierre
bf1690458a Partial fix for x86_64 peephole optimization
git-svn-id: trunk@21022 -
2012-04-24 15:38:07 +00:00
sergei
13e513fdf7 * Pass NR_FUNCTION_RESULT_REG to FPC_SAFECALLCHECK in target-independent way.
* Added missing call to paramanager.freecgpara.
* Handle safecall stuff after deallocating registers of the main call in order to keep allocations balanced.

git-svn-id: trunk@21021 -
2012-04-24 14:50:56 +00:00
sergei
04ca8a9126 * translate_disp_call: improved building the parameter block by using ttemprefnode.create_offset instead of taking address/pointer additions/dereference. Results in simpler node tree and lesser CPU instructions generated.
git-svn-id: trunk@21018 -
2012-04-24 12:51:36 +00:00
sergei
6d0dd50be3 * tcallnode.maybe_load_in_temp: treat asnode like callnode, because asnodes are converted into helper calls in pass 1. Improves code generated for expressions "(a as b).SomeMethod".
git-svn-id: trunk@21017 -
2012-04-24 12:31:21 +00:00
Jonas Maebe
05f9edbd08 * fixed compilation on Solaris after r20815
git-svn-id: trunk@21014 -
2012-04-24 11:08:08 +00:00
marco
abaf2eaf12 * sqlDB update SQLParser to parse DML statements WITH common table expressions
Patch by Lacak2, Mantis #21851

git-svn-id: trunk@21010 -
2012-04-24 08:45:16 +00:00
marco
61c4366c8e * fcl-db test for opening non-select statements, which return data by Lacak2, Mantis #21850
* Test for already fixed bugs #0016842 "show tables from <dbname>" and #0014519 "check table <tablename>"
    * Test for common table expressions used with select statement
    * plus reformating of test values (which I forgot did in rev.20585) 
   

git-svn-id: trunk@21009 -
2012-04-24 08:35:29 +00:00
Jonas Maebe
d08a17b763 * AIX requires record data that partially fills a register to be
left-aligned. Other targets only require this if the total size of the
    parameter was > 8 bytes (this last part used to be ensured by
    the ppc64-specific version of a_load_ref_cgpara() that was removed in
    r20962)

git-svn-id: trunk@21008 -
2012-04-23 21:14:38 +00:00
michael
c664a1b921 * Added context info (method/classname/id) and fixed access violation in case of (ID<>Nil) or not (jdoNotifications in Options) error
git-svn-id: trunk@21007 -
2012-04-23 21:00:35 +00:00
pierre
cea6ca2df9 Fix FpSigProcMask overload for OpenBSD: Warning this probably breaks compilation of unix's RTL by obsolete 2.4.4 release compiler, 2.6.0 required
git-svn-id: trunk@21005 -
2012-04-23 10:12:43 +00:00
pierre
afaea929a1 * Also enable ELF32 or ELF64 for OpenBSD OS
git-svn-id: trunk@21004 -
2012-04-23 10:10:10 +00:00
michael
b5b0388f17 * Indexed is by default false, in sync with usepalette which is false by default
git-svn-id: trunk@21003 -
2012-04-23 09:44:30 +00:00
michael
a49112dcc2 * Patch from Michalis Kamburelis to fix memory leak (bug 21835)
git-svn-id: trunk@21002 -
2012-04-23 09:42:34 +00:00
paul
e399f8f9bf rtl: reduce warnings about deprecated symbol access
git-svn-id: trunk@21001 -
2012-04-23 05:57:44 +00:00
Jonas Maebe
426d44905e * add symtable to uses clause for tabstractsymtable, part of r20967
(fixes powerpc64 compiler compilation)

git-svn-id: trunk@20981 -
2012-04-22 10:41:02 +00:00
Jonas Maebe
bbdf9fca73 - disabled fpc_qword_to_double() assembler version for AIX/ppc64 like for
AIX/ppc32
  + AIX/ppc64 support in powerpc64/mathu.inc (file is the same as
    powerpc/mathu.inc, should be unified)
  * fixed macos assembler code in powerpc64/strings.inc and enabled
    for AIX/ppc64

git-svn-id: trunk@20980 -
2012-04-22 10:40:57 +00:00