Jonas Maebe
f40ea04540
* changed getarraydef() into a tarraydef.getreusable() class method
...
git-svn-id: trunk@31147 -
2015-06-23 21:23:18 +00:00
Jonas Maebe
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
...
o allows removing the ugly x86 hacks
git-svn-id: trunk@31144 -
2015-06-22 08:17:49 +00:00
Jonas Maebe
89c4bd8522
* index the llvm shadow symtable with a fieldvarsym rather than with the
...
index of the corresponding llvm fieldvar, as this index is a member
of the fieldvarsym that only gets initialised once the llvm shadow
symtable gets built, which in turn is triggered by trying to access
it for the first time -> if fieldvarsym.llvmfieldnr got loaded by
the compiler before evaluating the llvmst expression and if the
llvmst hadn't been built yet, this llvmfieldnr was not yet initialized
git-svn-id: trunk@31060 -
2015-06-13 22:48:37 +00:00
Jonas Maebe
337716d413
* fixed subscripting classes in llvm
...
* fixed subscripting an objectdef in llvm if the field belongs to a
parent type
git-svn-id: trunk@30957 -
2015-05-31 16:51:07 +00:00
Jonas Maebe
0d00c1a19d
* fixed type used when subscripting implicit pointer types (don't add
...
another indirection)
git-svn-id: trunk@30953 -
2015-05-31 16:50:56 +00:00
Jonas Maebe
8034ef1f31
* support for dynamic strings and arrays in update_reference_reg_mul()
...
git-svn-id: trunk@30784 -
2015-05-03 16:51:13 +00:00
Jonas Maebe
864f9b24cc
* handle indexing implicit pointer types on llvm
...
git-svn-id: trunk@30723 -
2015-04-25 15:51:39 +00:00
Jonas Maebe
98c5f7d20f
* simplify references before generating getelementptr instructions with them
...
git-svn-id: trunk@30722 -
2015-04-25 15:51:36 +00:00
Jonas Maebe
03a3136525
* since extended values are represented as "array[1..10] of byte" in records
...
for llvm in order to ensure that it doesn't allocate the ABI-specified
size, we have to convert the resulting pointer to an array of 10 bytes
into a pointer to extended when we subscript the record (like is already
done for arrays)
git-svn-id: trunk@30720 -
2015-04-25 15:51:30 +00:00
Jonas Maebe
6391794958
* fixed -Oodfa warnings
...
git-svn-id: trunk@30500 -
2015-04-08 19:08:39 +00:00
Jonas Maebe
5a2609933f
* fixed crash in r30244 (we only have to get a new elementdef if we didn't
...
already initialise the location, and we won't get a new elementdef if
the location is already assigned)
git-svn-id: branches/hlcgllvm@30346 -
2015-03-28 11:33:59 +00:00
Jonas Maebe
765044aede
* fixed a number of (mostly false) warnings regarding uninitialised
...
variables with -Oodfa
git-svn-id: branches/hlcgllvm@30244 -
2015-03-15 21:10:50 +00:00
Jonas Maebe
0867b6e4f8
* added missing {$i fpcdefs.inc}
...
git-svn-id: branches/hlcgllvm@28378 -
2014-08-10 19:40:34 +00:00
Jonas Maebe
6ab2c00ac6
* recognise LOC_CREFERENCE in tllvmsubscriptnode.handle_platform_subscript()
...
git-svn-id: branches/hlcgllvm@28364 -
2014-08-10 19:39:58 +00:00
Jonas Maebe
0283670041
* set location.size if we handle a subscript access in
...
handle_platform_subscript()
git-svn-id: branches/hlcgllvm@27136 -
2014-03-14 18:22:12 +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
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
25fab5b0b6
+ support for array vecnodes on the llvm target, both for regular and for
...
bitpacked arrays:
o separate the element size from the index when constructing the memory
references, so we can easily use the llvm getelementptr instruction
o handle conversion of s80real values from their array declaration
as array elements to floating point values when loading them
git-svn-id: branches/hlcgllvm@26050 -
2013-11-11 11:16:09 +00:00