Jonas Maebe
dad45d63b1
* improved symbol alias handling (pass in old sym instead of name, add
...
pointer add end of aliased procdef)
git-svn-id: branches/hlcgllvm@27008 -
2014-03-06 21:41:56 +00:00
Jonas Maebe
abee66b611
* optimized a_loadaddr_ref_reg() in cases where an offset is added to a
...
symbol or base register and the offset is a multiple of the def's size
git-svn-id: branches/hlcgllvm@27007 -
2014-03-06 21:41:53 +00:00
Jonas Maebe
c4869980e8
* fixed typo in comment
...
git-svn-id: branches/hlcgllvm@27006 -
2014-03-06 21:41:50 +00:00
Jonas Maebe
358b346bbc
* fixed writing of constant operands outside the longint range
...
git-svn-id: branches/hlcgllvm@27005 -
2014-03-06 21:41:46 +00:00
Jonas Maebe
161647f965
* simplified (incomplete) implementation of g_concatcopy() that simply calls
...
a_load_ref_ref (the llvm memcpy intrinsic can be lowered into a libc call,
so we can't use it)
git-svn-id: branches/hlcgllvm@27004 -
2014-03-06 21:41:43 +00:00
Jonas Maebe
366baac98d
* optimized version of a_load_ref_ref() in case the source has refaddr_full
...
(= "named register" in case of llvm)
git-svn-id: branches/hlcgllvm@27003 -
2014-03-06 21:41:40 +00:00
Jonas Maebe
fcbde1d6e9
+ hlcg/llvm support for unary minus
...
o converted tcgunaryminusnode.emit_float_sign_change() to use a tdef instead
of tcgsize
git-svn-id: branches/hlcgllvm@27002 -
2014-03-06 21:41:36 +00:00
Jonas Maebe
227ff0ea48
* llvm requires that single precision constants are exactly representable
...
using single precision -> convert them to single precision in the code
generator
git-svn-id: branches/hlcgllvm@27001 -
2014-03-06 21:41:32 +00:00
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