Jonas Maebe
b82053ef40
* reworked handling of defined/declared symbols in llvm: we now automatically
...
generate declarations when external symbols are referred in a taillvm
instruction
* added "declared" field to tasmsymbol for llvm to make avoid declaring a
symbol multiple times (harmless, but unnecessary)
* all kinds of declarations/definitions are now handled using the new
taillvmdecl, the old separate types have been removed
git-svn-id: branches/hlcgllvm@27010 -
2014-03-06 21:42:03 +00:00
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
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
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
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
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
d14ce7817f
* factored out setlocalloc and the code to set the initial paravarsym
...
location from ncgutil into hlcgobj, and override/implement it for llvm
(use the symbolic parameter names)
git-svn-id: branches/hlcgllvm@26052 -
2013-11-11 11:16:16 +00:00
Jonas Maebe
80c6225bf4
* fixed handling of comp and currency when they have to be handled by the
...
fpu: treat them as extended when they are loaded into registers, and as
int64 when loading from/storing to memory
git-svn-id: branches/hlcgllvm@26048 -
2013-11-11 11:16:01 +00:00
Jonas Maebe
9d4ea0337a
+ basic implementation of the LLVM high level code generator
...
git-svn-id: branches/hlcgllvm@26045 -
2013-11-11 11:15:51 +00:00