Commit Graph

37329 Commits

Author SHA1 Message Date
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
Jonas Maebe
81d1cfb3ca + -prefix_constants <x>, -prefix_fields <x> and -prefix_innerclasses <x>
options to customise the prefixes that the translator adds to to resp.
  constant, field and inner class names. For an empty prefix, use "".
  Defaults: nothing for constants, "f" for fields and "Inner" for inner
  classes.

git-svn-id: branches/jvmbackend@21041 -
2012-04-25 18:14:35 +00:00
Jonas Maebe
9a10c5aea8 * don't mark final class methods as virtual
git-svn-id: branches/jvmbackend@21040 -
2012-04-25 18:14:29 +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
Jonas Maebe
653996dde1 * {$linklib libnsl.so} -> {$linklib nsl} for AIX (copy/paste error)
git-svn-id: trunk@20979 -
2012-04-22 10:40:51 +00:00
Jonas Maebe
2ec79fd357 * fixed timespec and mcontext_t types for AIX 64 bit
* fixed a few more (harmless because in fields we don't use) errors in AIX
    mcontext_t definition

git-svn-id: trunk@20978 -
2012-04-22 10:40:46 +00:00
marco
743e58ed0f * test for bzip2 from Mantis #21261
git-svn-id: trunk@20977 -
2012-04-22 10:12:45 +00:00
marco
d8101679fa * chunk protected instead of private, Mantis #20543
git-svn-id: trunk@20969 -
2012-04-21 22:52:58 +00:00