Commit Graph

43259 Commits

Author SHA1 Message Date
Jonas Maebe
2d335baab8 * create only a single tai_string for shortstrings typed constants
whose type length is larger than the specified string
  * corrected place of ftcb.maybe_end_aggregate() call

git-svn-id: branches/hlcgllvm@28134 -
2014-07-02 17:24:56 +00:00
Jonas Maebe
23f34608ed * null-terminate tai_strings loaded from ppus
git-svn-id: branches/hlcgllvm@28133 -
2014-07-02 17:24:53 +00:00
Jonas Maebe
9f39188253 * moved the tai_*typedconst classes to aasmcnst to make use of def-related
helpers in a cleaner way (defutils would not belong in the uses clause of
    aasmtai)

git-svn-id: branches/hlcgllvm@28132 -
2014-07-02 17:24:50 +00:00
Jonas Maebe
2af0b46792 - removed unused variables
git-svn-id: branches/hlcgllvm@28131 -
2014-07-02 17:24:47 +00:00
Jonas Maebe
7ca4ebee9d * fixed end of shortstring llvm def after r27015
git-svn-id: branches/hlcgllvm@28130 -
2014-07-02 17:24:44 +00:00
Jonas Maebe
3511aa4878 * don't write a tab character before an instruction that's a nested operand
git-svn-id: branches/hlcgllvm@28126 -
2014-07-01 16:31:03 +00:00
Jonas Maebe
1a77bc952e * immediate write out partial string respresentations of instructions
rather than first concatenating everything, because in case of
    instructions that have other tai as operands we have to ensure that
    all previous output is flushed before the tai-operand is evaluated
    (and written/flushed)

git-svn-id: branches/hlcgllvm@28125 -
2014-07-01 16:31:00 +00:00
Jonas Maebe
5b884c96f2 + initial llvm implementation of the ttai_typedconstbuilder class
o now simple typed constants (integer, floating pointer, pchar)
     and (non-variant) record typed constants containing such
     elements work for llvm

git-svn-id: branches/hlcgllvm@28124 -
2014-07-01 16:30:57 +00:00
Jonas Maebe
a0c39220b1 * fixed (harmless) typecast errors when creating a string representation of
a procvardef
  * handle procdefs like procvardefs when getting their string representation
    in arbitrary expressions

git-svn-id: branches/hlcgllvm@28123 -
2014-07-01 16:30:55 +00:00
Jonas Maebe
0c10cbe63b + support for tai_symbol (in nested typed constant expressions)
git-svn-id: branches/hlcgllvm@28122 -
2014-07-01 16:30:52 +00:00
Jonas Maebe
f89b2e2b26 + support for tai_string (in nested typed constant expressions)
git-svn-id: branches/hlcgllvm@28121 -
2014-07-01 16:30:49 +00:00
Jonas Maebe
204adf82c7 * handle tai_const instances as operands to other tai
git-svn-id: branches/hlcgllvm@28120 -
2014-07-01 16:30:46 +00:00
Jonas Maebe
f8f7c30f14 * support non-taillvm tai instances as operands to taillvm instances
git-svn-id: branches/hlcgllvm@28119 -
2014-07-01 16:30:43 +00:00
Jonas Maebe
6c45f9b3ee * converted most of the asmlist-based typed const parsing to use the new
typed const builder class

git-svn-id: branches/hlcgllvm@28118 -
2014-07-01 16:30:40 +00:00
Jonas Maebe
02ad2e4879 + unit with a buider class for typed constant/initialised data elements at
the assembler level
   o initially for use during the typed constant parsing, but usable anywhere
     we generate initialised data in the compiler

git-svn-id: branches/hlcgllvm@28117 -
2014-07-01 16:30:37 +00:00
Jonas Maebe
a8b2b576ca + new llvmconvop() routine that determines the conversion operation to
convert one def to another, including information regarding whether
    it should be done via an intermediate integer typecast
  * use this routine in hlcgllvm

git-svn-id: branches/hlcgllvm@28116 -
2014-07-01 16:30:34 +00:00
Jonas Maebe
bf617cb389 * changed hlcgobj.def2reg() into a class method so it can also be called
when there's no instantiated tlhcg

git-svn-id: branches/hlcgllvm@28115 -
2014-07-01 16:30:30 +00:00
Jonas Maebe
da3e931d68 + support for tai_realconst in llvm assembler writer
git-svn-id: branches/hlcgllvm@28114 -
2014-07-01 16:30:27 +00:00
Jonas Maebe
8043254461 * factored out generating string representations of floating point numbers
in the llvm assembler writer

git-svn-id: branches/hlcgllvm@28113 -
2014-07-01 16:30:24 +00:00
Jonas Maebe
1e7d9c9f0e + support for instruction operands that are tai themselves in the llvm
backend (required for inserting bitcasts/ptrtoint/... operations inside
    typed constant declarations)
   o taillvm constructors for creating bitcast-style and getlementptr
     operations that accept a tai as their source/base operand

git-svn-id: branches/hlcgllvm@28112 -
2014-07-01 16:30:22 +00:00
Jonas Maebe
7ebb1b813f + basic support infrastructure in the llvm assembler writer to write out
typed constant data
   o llvm declarations now get an extra "initdata" list that contains the
     typed constant data associated with this declaration (if any)

git-svn-id: branches/hlcgllvm@28111 -
2014-07-01 16:30:19 +00:00
Jonas Maebe
1fdb16b615 * fixed indentation
git-svn-id: branches/hlcgllvm@28110 -
2014-07-01 16:30:16 +00:00
Jonas Maebe
1047cdadcb * factored out writing of a single tai, so this routine can call itself
recursively when writing out typed constant data
   o basic support for tai_const

git-svn-id: branches/hlcgllvm@28109 -
2014-07-01 16:30:13 +00:00
Jonas Maebe
e51b893c9e + "typed const" tai that combines a tai and its associated tdef information
git-svn-id: branches/hlcgllvm@28108 -
2014-07-01 16:30:09 +00:00
Jonas Maebe
0082d3e008 * use hlcgobj methods in maybe_change_load_node_reg
git-svn-id: branches/hlcgllvm@28107 -
2014-07-01 16:30:05 +00:00
Jonas Maebe
dc57f537d4 * fixed indentation
git-svn-id: branches/hlcgllvm@28106 -
2014-07-01 16:30:01 +00:00
Jonas Maebe
b0ff41406a * grouped all tai_real* types into a single tai_realconst type,
to free up space for more ait_* types in taitype (can't have
    more than 32 because they have to fit in a small set)
   o factored out writing of floating point numbers as an array of
     byte in the external assemblers

git-svn-id: branches/hlcgllvm@28105 -
2014-07-01 16:29:58 +00:00
Jonas Maebe
a24c81a5f8 * added llvmdatalayout for mipsel-android
git-svn-id: branches/hlcgllvm@28104 -
2014-07-01 16:29:54 +00:00
Jonas Maebe
bacd303208 * synchronized with trunk up to r27758
git-svn-id: branches/hlcgllvm@27779 -
2014-05-12 16:12:34 +00:00
Jonas Maebe
362ff5ad01 * only check for _PROPERTY as a regular token, so that
{$modeswitch properties-} also affects global properties
    (mantis #25861)

git-svn-id: trunk@27758 -
2014-05-10 16:03:02 +00:00
michael
dc17b7ef46 * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27757 -
2014-05-10 15:56:37 +00:00
michael
7c9d6184a1 * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27756 -
2014-05-10 15:53:50 +00:00
michael
75c6d67bc7 * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27755 -
2014-05-10 15:31:41 +00:00
michael
a1c9a98e68 * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27754 -
2014-05-10 15:31:22 +00:00
michael
bbfd061dcf * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27753 -
2014-05-10 15:30:57 +00:00
michael
478f1a2c5f * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27752 -
2014-05-10 15:30:33 +00:00
michael
b26e9cc201 * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27751 -
2014-05-10 15:30:09 +00:00
michael
36c662f69f * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27750 -
2014-05-10 15:29:29 +00:00
michael
8d4e81702e * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27749 -
2014-05-10 15:28:22 +00:00
michael
89c4255ab8 * test for subrangeset
git-svn-id: trunk@27748 -
2014-05-10 15:24:31 +00:00
michael
c861384366 * Fixed bug #26117, as proposed by reporter
git-svn-id: trunk@27747 -
2014-05-10 14:45:03 +00:00
michael
eb32f7bc2e * Fixed bug #26130
git-svn-id: trunk@27746 -
2014-05-10 14:37:52 +00:00
michael
47fd732236 * Fix StrToDate incompatibility with delphi in case of trailing whitespace
git-svn-id: trunk@27745 -
2014-05-10 13:41:06 +00:00
Jonas Maebe
2075bf157e * insert JVM checkcast instructions when a voidpointer is implicitly
converted to an incompatible type

git-svn-id: trunk@27744 -
2014-05-10 12:47:34 +00:00
Jonas Maebe
675498a53e * javaa -> java
git-svn-id: trunk@27743 -
2014-05-10 12:47:31 +00:00
Jonas Maebe
ea0b9efd20 + support for simplifying empty try-except statements
o required for the JVM target, as exception tables with start=end
     are invalid there

git-svn-id: trunk@27742 -
2014-05-10 12:47:28 +00:00
Jonas Maebe
5fa09fa2f4 * changed tcallnode.fforcedprocname from shortstring into tsymstr,
so it doesn't truncate mangled names for the JVM target (it's
    used there since r27149)
   o adapted a number of WPO helpers to use tsymstr instead of
     shortstring, but the WPO devirtualization functionality is
     still limited to shortstrings internally

git-svn-id: trunk@27741 -
2014-05-10 12:47:25 +00:00
Jonas Maebe
9f6d6f4aa8 * copy tcallnode.fforcedprocname field
git-svn-id: trunk@27740 -
2014-05-10 12:47:22 +00:00
michael
6d43208e44 * Fixed memory leak, context and SSL object must be freed
git-svn-id: trunk@27739 -
2014-05-08 11:06:17 +00:00
lacak
aa62089fb3 fcl-db: sqldb: TSQLTransaction.EndTransaction should end transaction (a do not leave it active). So caCommitRetaining and caRollbackRetaining are only aliases of caCommit, caRollback in this case. Bug #26068
git-svn-id: trunk@27738 -
2014-05-05 10:36:22 +00:00