Jonas Maebe
49a83b2872
* allow targets to keep certain type conversions for equal types in
...
inserttypeconv()
o keep typeconversions between structurally equivalent but semantically
different procvardefs for LLVM and JVM, because they're different
types there
git-svn-id: trunk@32904 -
2016-01-10 14:01:46 +00:00
Jonas Maebe
e3d2980c98
* don't load data in a register when converting from void to an integer
...
type (like with integer(pointer1^):=integer(pointer2^))
git-svn-id: trunk@32743 -
2015-12-26 20:01:44 +00:00
Jonas Maebe
a9498b6735
* fixed the parameter order for thlcgobj.g_load_const_field_by_name()
...
git-svn-id: trunk@32595 -
2015-12-05 18:03:48 +00:00
Jonas Maebe
df9efdeb4c
* fixed llvm types for loading the address of a nested routine
...
git-svn-id: trunk@32594 -
2015-12-05 18:03:45 +00:00
Jonas Maebe
35714e5d50
* don't internallerror when encountering an "absolute" type conversion to
...
a differently sized def in LLVM
git-svn-id: trunk@32571 -
2015-12-02 22:29:23 +00:00
Jonas Maebe
13cf405f8c
* fixed llvm second_int_to_real for comp
...
git-svn-id: trunk@32464 -
2015-11-22 11:49:11 +00:00
Jonas Maebe
72c7cb2770
* typecast second_proc_to_procvar() results for llvm if the generic code
...
performed a simple location_copy() from one complex procvar type to
another
git-svn-id: trunk@32426 -
2015-11-21 12:37:50 +00:00
Jonas Maebe
423eb7ddb6
* fixed int_to_real() conversion llvm destination type when the result is
...
currency
git-svn-id: trunk@32423 -
2015-11-21 12:37:40 +00:00
Jonas Maebe
bd4787c716
* force complex procvars immediately to memory for llvm, so we don't have to
...
deal with the hacky register/registerhi complex locations
git-svn-id: trunk@32407 -
2015-11-21 12:36:48 +00:00
Jonas Maebe
4f54f8b3bd
* fixed expectloc for llvm bool_2_int typeconversions where the location
...
doesn't change
git-svn-id: trunk@32248 -
2015-11-04 22:23:50 +00:00
Jonas Maebe
0fc1fd6ac1
* replaced current_procinfo.currtrue/falselabel with storing the true/false
...
labels of LOC_JUMP in the node's location. This generates some extra jumps
for short circuit boolean and/or-expressions if optimizations are off, but
with optimisations enabled the generated code is the same (except for JVM
because the jump threading optimisation isn't enabled there yet).
git-svn-id: trunk@31431 -
2015-08-27 18:28:57 +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
eae68e86a1
* don't insert a typeconversion from pasbool to int in case the left
...
location was LOC_JUMP or LOC_FLAGS, as in that case the generic
code has already done this using location_force_reg()
git-svn-id: trunk@30783 -
2015-05-03 16:51:10 +00:00
Jonas Maebe
f7b5ee64ae
* always insert type conversion for pasbool to int on llvm, as pasbool is
...
represented by i1 while equally sized integers are i8
git-svn-id: trunk@30709 -
2015-04-25 15:50:58 +00:00
Jonas Maebe
0aab46b97f
+ tllvmtypeconvnode.second_int_to_bool() implementation
...
git-svn-id: branches/hlcgllvm@28370 -
2014-08-10 19:40:13 +00:00
Jonas Maebe
9fada1a238
* don't internalerror when typecasting voidpointer^ or formaldef
...
git-svn-id: branches/hlcgllvm@28208 -
2014-07-12 22:42:15 +00:00
Jonas Maebe
27e350fa9a
+ llvm implementation of second_int_to_real()
...
git-svn-id: branches/hlcgllvm@28207 -
2014-07-12 22:42:11 +00:00
Jonas Maebe
4746e17be5
* implemented second_int_to_int() for llvm
...
o the generic implementation ignores the need for bitcasts from pointers to
ordinals and vice versa, and also hacks around with offsets
git-svn-id: branches/hlcgllvm@28206 -
2014-07-12 22:14:37 +00:00
Jonas Maebe
b494f76b81
* made internalerror unique
...
git-svn-id: branches/hlcgllvm@28201 -
2014-07-12 22:13:39 +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