Commit Graph

42470 Commits

Author SHA1 Message Date
Jonas Maebe
cdfb23bf6c * converted some leftovers in tcgtypeconvnode.second_int_to_int/
second_real_to_real to thlcgobj
  + added type conversion to second_pointer_to_array for llvm

git-svn-id: branches/hlcgllvm@27000 -
2014-03-06 21:41:27 +00:00
Jonas Maebe
8cc9b64ad7 * don't discard typeconversion nodes that only change the result type when
compiling for llvm, because this type change also needs to be modelled in
    llvm IR

git-svn-id: branches/hlcgllvm@26999 -
2014-03-06 21:41:24 +00:00
Jonas Maebe
5e79789f9e + dummy mmregister allocator for platforms that use such registers
git-svn-id: branches/hlcgllvm@26998 -
2014-03-06 21:41:19 +00:00
Jonas Maebe
bc0d4bbc87 + support second_cmpfloat (just call through to second_addfloat, where the
comparisons are already implemented)

git-svn-id: branches/hlcgllvm@26997 -
2014-03-06 21:41:16 +00:00
Jonas Maebe
752b6739a8 * properly handle address and temp registers in return locations
git-svn-id: branches/hlcgllvm@26996 -
2014-03-06 21:41:12 +00:00
Jonas Maebe
6b7ed0234c + new globalsymbolmangleprefix/suffix constant set to '@"\01' resp. '"'
for llvm, and empty for other targets:
   o the '@' is required to mark a global/static symbol identifier in llvm
   o the double quotes are required in case special characters are involved
   o the \01 means that the name should not be mangled by llvm (e.g., by
     default it still adds the C-prefix to all symbol names, and replaces
     some special characters with alternatives)
  * apply this prefix/suffix in all name mangling routines

git-svn-id: branches/hlcgllvm@26995 -
2014-03-06 21:41:09 +00:00
Jonas Maebe
41a53ef037 * don't replace some pointer types in paralocs with int64, gives nicer
results in llvm (fewer needless pointer -> int -> pointer conversions)

git-svn-id: branches/hlcgllvm@26994 -
2014-03-06 21:41:04 +00:00
Jonas Maebe
68fa17593d * no longer associated defs with size 1 to 3 bytes with paralocs, because
gcc and clang always allocate them in multiple of 4 bytes too (except in
    case of _Bool, which is 1 byte -> do the same for PasBool) and this is
    one possible interpretation of the ABI. This also frees us from having to
    perform special adjustments afterwards to ensure that smaller values are
    sign/zero-extended to 32 bits

git-svn-id: branches/hlcgllvm@26993 -
2014-03-06 21:41:00 +00:00
Jonas Maebe
81427523ab * pass a list of (pointers to) the paralocs to hlcgobj.a_call/g_call*, as
required for the LLVM support (LLVM parameter support is not yet
    included)
  * always return the function return loc from a_call*, again as required
    for the LLVM support

git-svn-id: branches/hlcgllvm@26992 -
2014-03-06 21:40:57 +00:00
Jonas Maebe
532d623be7 + support for encoding records/objectdefs in LLVM-speak
git-svn-id: branches/hlcgllvm@26991 -
2014-03-06 21:40:52 +00:00
Jonas Maebe
20a8175bf1 + support for subscript nodes in LLVM
git-svn-id: branches/hlcgllvm@26990 -
2014-03-06 21:40:49 +00:00
Jonas Maebe
e70175a10e * added extra boolean parameter to getelementptr taillvm constructors to
indicate whether or not an implicit indirection should be added (always
    was done until now)

git-svn-id: branches/hlcgllvm@26989 -
2014-03-06 21:40:46 +00:00
Jonas Maebe
cefcb856b6 + code from the old llvm branch to create a "shadow symtable" for records
that contains their mapping to LLVM (mainly getting rid of variant parts
    and adding explicit padding when not using {$packrecords c})

git-svn-id: branches/hlcgllvm@26988 -
2014-03-06 21:40:43 +00:00
Jonas Maebe
98be5b0825 * correctly handle loads/stores of aggregate types if the source and
destination types are different: the pointer types of the load/store must
    be converted in that case, rather than the loaded/to be stored value
    (you can't bitcast aggregates in LLVM)

git-svn-id: branches/hlcgllvm@26987 -
2014-03-06 21:40:39 +00:00
Jonas Maebe
43e0eb3cfd + llvmaggregatetype() helper that returns whether a def is represented by an
aggregate type in llvm

git-svn-id: branches/hlcgllvm@26986 -
2014-03-06 21:40:36 +00:00
Jonas Maebe
f344adaf22 * the first parameter of loadaddr_ref_reg has to be converted to a pointer
(it's the type of the data stored in memory at that address, but we use
     the address itself here)

git-svn-id: branches/hlcgllvm@26985 -
2014-03-06 21:40:32 +00:00
Jonas Maebe
9902864cce * don't output alignments for reference operands to bitcast & co
git-svn-id: branches/hlcgllvm@26984 -
2014-03-06 21:40:29 +00:00
Jonas Maebe
f629f38bbc - removed unused local variable
git-svn-id: branches/hlcgllvm@26983 -
2014-03-06 21:40:25 +00:00
Jonas Maebe
9c674ff444 * made internalerror unique
git-svn-id: branches/hlcgllvm@26982 -
2014-03-06 21:40:21 +00:00
Jonas Maebe
c2c7f753a8 * don't hardcode the bitsize of the register states
git-svn-id: branches/hlcgllvm@26981 -
2014-03-06 21:40:18 +00:00
Jonas Maebe
839ad45b9e * ensure that the lineinfo of temps corresponds to the lineinfo of the
procedure entry code

git-svn-id: branches/hlcgllvm@26980 -
2014-03-06 21:40:15 +00:00
Jonas Maebe
c095a1b06a * also check regtype in get_spill_temp()
git-svn-id: branches/hlcgllvm@26979 -
2014-03-06 21:40:12 +00:00
Jonas Maebe
a6a72e210c * fixed typo in comment
git-svn-id: branches/hlcgllvm@26978 -
2014-03-06 21:40:08 +00:00
Jonas Maebe
672c96a811 * write elements of bitpacked arrays grouped per the number of bits that
will be used to load them afterwards instead of always per byte so we
    can use that loadsize as the array element type in llvm declarations
    (-> less casting required)

git-svn-id: branches/hlcgllvm@26977 -
2014-03-06 21:40:04 +00:00
Jonas Maebe
e9268a0a14 * synchronised with trunk up till r26975
git-svn-id: branches/hlcgllvm@26976 -
2014-03-06 21:36:58 +00:00
Jonas Maebe
009c96a0bd * fixed setting up the global switch for main programs without a "program"
header on platforms not in systems_unit_program_exports

git-svn-id: trunk@26975 -
2014-03-06 18:41:03 +00:00
reiniero
2388575d3b fcl-db: export
* dbf export: default table format DBaseIV, set default autorename for fields to true

git-svn-id: trunk@26974 -
2014-03-06 18:16:47 +00:00
reiniero
7f22ae17ff fcl-db: cosmetic
git-svn-id: trunk@26973 -
2014-03-06 15:10:11 +00:00
reiniero
3478ca4672 fcld-db: dbase:
* Harden Visual FoxPro code: detect nil varbinary field source

git-svn-id: trunk@26972 -
2014-03-06 15:09:38 +00:00
reiniero
d0c93f4cd8 fcl-db: dbtestframework:
+ add Visual Foxpro export test

git-svn-id: trunk@26971 -
2014-03-06 14:38:36 +00:00
michael
77b771e91b * Let ToString return something meaningful for Exception
git-svn-id: trunk@26969 -
2014-03-06 13:34:40 +00:00
reiniero
b87b2add38 fcl-db: dbtestframework:
* Fix dbf export test column name collisions; fixes "field not found" when exporting

git-svn-id: trunk@26967 -
2014-03-06 12:40:32 +00:00
nickysn
fec4c6a6e2 * various rtl fixes that allow objpas.integer to be 16-bit on 16-bit targets
(still not sure if it's a good idea, but trying, at least, is harmless - we
  can always rollback to integer being equal to longint)

git-svn-id: trunk@26966 -
2014-03-06 01:10:18 +00:00
florian
7aa25e4385 + lazarus project for easier editing with lazarus
git-svn-id: trunk@26965 -
2014-03-05 20:31:37 +00:00
Jeppe Johansen
10522e9779 Disabled a_adjust_sp optimized steps for now.
Integrated proper stack frame calculation.
Changed rjmp to jmp in ATMEGA128 interrupt vectors.

git-svn-id: trunk@26964 -
2014-03-05 19:17:46 +00:00
pierre
d9c663f198 Add -Fl/usr/lib for openbsd target OS, required to find and link C startup objects
git-svn-id: trunk@26963 -
2014-03-05 17:07:48 +00:00
lacak
277c3fb00a fcl-db: sqldb: cosmetic (reorder methods)
git-svn-id: trunk@26962 -
2014-03-05 14:40:43 +00:00
lacak
3765b74ecd fcl-db: sqldb: simplify GetStatementInfo method signature
(it was protected and now is 3 weeks public in TSQLConnection)

git-svn-id: trunk@26961 -
2014-03-05 11:20:21 +00:00
michael
a1252febae * Make sure UpdateCount=0 when inherited destructor is called (and ooFree is dispatched (Bug ID 25821)
git-svn-id: trunk@26960 -
2014-03-05 09:22:19 +00:00
michael
15bb6b2c72 * Patch from Luiz Americo to make fpobserver notifications take care of begin/endupdate (Bug ID 25820)
git-svn-id: trunk@26959 -
2014-03-05 09:15:30 +00:00
Jeppe Johansen
9b79f2f68d Added support for 8-bit CPU's in RTL. Mostly for missing implementations of int<->string conversion and console/text output.
git-svn-id: trunk@26958 -
2014-03-04 20:00:03 +00:00
Jonas Maebe
98517b9ac9 * set imaginary register start for JVM at register number 2, since there
are only 2 (fake) "real" registers

git-svn-id: trunk@26957 -
2014-03-04 19:42:43 +00:00
Jonas Maebe
ffac2feb59 * since we only build the deref for tprocdef.localst when we're
going to write it to the ppu since r26083, also only deref it
    if that's the case (mantis #25814)

git-svn-id: trunk@26956 -
2014-03-04 19:42:39 +00:00
Jonas Maebe
4f1207f603 + support for specifying an optional command line parameter to use during a
recompile of a test

git-svn-id: trunk@26955 -
2014-03-04 19:42:35 +00:00
marco
4b677ca027 * link pangocairo on Darwin.
git-svn-id: trunk@26954 -
2014-03-04 16:29:50 +00:00
reiniero
b2ad159b5b fcl-db: dbtestframework:
* cosmetic

git-svn-id: trunk@26953 -
2014-03-04 16:16:55 +00:00
reiniero
5bab60669c fcl-db: dbtestframework:
* dbf export: ftBytes is not supported at the moment

git-svn-id: trunk@26952 -
2014-03-04 15:07:48 +00:00
nickysn
9743a9122d * moved creation of voidpointertype, so that voidpointertype.size is available
earlier

git-svn-id: trunk@26951 -
2014-03-04 14:10:02 +00:00
reiniero
0ec6a79505 fcl-db: dbtestframework: MS SQL Server:
* Create tables allowing NULL values for non-primary keys
* Increase blob size per documentation in order to support large blobs

git-svn-id: trunk@26950 -
2014-03-04 13:08:33 +00:00
reiniero
8e28dd52b4 fcl-db: dbtestframework:
- revert functional changes of previous commit: better deal with NULL setting via connection/session or database level:
http://msdn.microsoft.com/en-us/library/ms174979.aspx			

git-svn-id: trunk@26949 -
2014-03-04 12:46:56 +00:00