Jonas Maebe
b0ff41406a
* grouped all tai_real* types into a single tai_realconst type,
...
to free up space for more ait_* types in taitype (can't have
more than 32 because they have to fit in a small set)
o factored out writing of floating point numbers as an array of
byte in the external assemblers
git-svn-id: branches/hlcgllvm@28105 -
2014-07-01 16:29:58 +00:00
Jonas Maebe
a24c81a5f8
* added llvmdatalayout for mipsel-android
...
git-svn-id: branches/hlcgllvm@28104 -
2014-07-01 16:29:54 +00:00
Jonas Maebe
bacd303208
* synchronized with trunk up to r27758
...
git-svn-id: branches/hlcgllvm@27779 -
2014-05-12 16:12:34 +00:00
Jonas Maebe
362ff5ad01
* only check for _PROPERTY as a regular token, so that
...
{$modeswitch properties-} also affects global properties
(mantis #25861 )
git-svn-id: trunk@27758 -
2014-05-10 16:03:02 +00:00
michael
36c662f69f
* Extention -> extension (By Reinier, bug ID #25979 )
...
git-svn-id: trunk@27750 -
2014-05-10 15:29:29 +00:00
Jonas Maebe
2075bf157e
* insert JVM checkcast instructions when a voidpointer is implicitly
...
converted to an incompatible type
git-svn-id: trunk@27744 -
2014-05-10 12:47:34 +00:00
Jonas Maebe
ea0b9efd20
+ support for simplifying empty try-except statements
...
o required for the JVM target, as exception tables with start=end
are invalid there
git-svn-id: trunk@27742 -
2014-05-10 12:47:28 +00:00
Jonas Maebe
5fa09fa2f4
* changed tcallnode.fforcedprocname from shortstring into tsymstr,
...
so it doesn't truncate mangled names for the JVM target (it's
used there since r27149)
o adapted a number of WPO helpers to use tsymstr instead of
shortstring, but the WPO devirtualization functionality is
still limited to shortstrings internally
git-svn-id: trunk@27741 -
2014-05-10 12:47:25 +00:00
Jonas Maebe
9f6d6f4aa8
* copy tcallnode.fforcedprocname field
...
git-svn-id: trunk@27740 -
2014-05-10 12:47:22 +00:00
Károly Balogh
2d38cf0dbd
assemble: don't include exec directly, but use GetProcessID to generate the unique file ID, because that maps to exec/FindTask on Amiga anyway
...
git-svn-id: trunk@27737 -
2014-05-04 23:16:52 +00:00
Károly Balogh
633eeb79ed
m68k/ra68kmot.pas: fixed a pointer to signed int cast warning, so it now compiles with warnings on
...
git-svn-id: trunk@27735 -
2014-05-04 22:22:03 +00:00
Károly Balogh
3b787b7187
m68k/ra68k.pas: fixed some multi level comment warnings, so it now compiles with warnings on
...
git-svn-id: trunk@27734 -
2014-05-04 22:21:24 +00:00
Károly Balogh
94d1a04422
m68k/cpuasm.pas was an empty and unused file since the first SVN commit. other platforms also doesn't have such file, so removed.
...
git-svn-id: trunk@27733 -
2014-05-04 21:51:15 +00:00
Jonas Maebe
13fbf5b6ef
* fixup for r27725: limit change to subn
...
git-svn-id: trunk@27732 -
2014-05-04 11:40:32 +00:00
nickysn
89e9fac562
* TVMTBuilder.intf_allocate_vtbls: fixed the Ioffset calculation in i8086 far
...
data memory models
git-svn-id: trunk@27728 -
2014-05-03 17:05:50 +00:00
Jonas Maebe
e704dd8d74
* treat "u32bit-u32bit" as a signed value when removing automatic
...
64 bit upcasts, as the result can be negative when evaluated in
64 bit (reported on irc, please file bug reports)
git-svn-id: trunk@27725 -
2014-05-03 15:06:16 +00:00
nickysn
791cd932fd
+ support i8086 far data memory models in tcg8086.g_intf_wrapper
...
git-svn-id: trunk@27722 -
2014-05-03 14:17:54 +00:00
florian
8207e0ef22
+ make use of vfnmsub*/vfmsub*/vfnmadd* instructions if possible
...
git-svn-id: trunk@27721 -
2014-05-02 21:07:46 +00:00
nickysn
6e7dd647fd
* Tcgx86.g_concatcopy: optimization for the case where source.segment is
...
specified, but equal to DS in the current memory model
git-svn-id: trunk@27720 -
2014-05-02 13:07:54 +00:00
nickysn
906d828ee0
* tcg8086.g_copyvaluepara_openarray: fix for the case where ref.segment is
...
specified, but equal to DS in the current memory model -> call the high level
code generator with a near pointer type in order to force the segment to be
ignored
git-svn-id: trunk@27716 -
2014-05-01 22:28:07 +00:00
nickysn
c9c29a3cd4
+ ignore the source segment, when the destination cgpara is a near pointer in
...
tcg8086.a_loadaddr_ref_cgpara
git-svn-id: trunk@27715 -
2014-05-01 21:56:04 +00:00
nickysn
c9f8703679
+ set ref.segment to NR_SS for all temps/localvars on i8086. This allows the
...
segment to survive e.g. several nested vecnodes, which cause the base register
to change from BP to something else. In the cases where the ss: prefix is not
needed, it is removed by make_simple_ref.
+ remove the ss: prefix in the several cases where make_simple_ref isn't called
(namely spilling and tcg8086.a_call_reg_far)
git-svn-id: trunk@27714 -
2014-05-01 21:18:47 +00:00
nickysn
38aec68d6f
* ti8086vecnode.update_reference_reg_mul: remove the segment before calling
...
base, because base may in some cases call cg.a_loadaddr_ref_reg, which will
overwrite the next register, if the source reference contains a segment
git-svn-id: trunk@27713 -
2014-05-01 19:39:52 +00:00
florian
2fa066b003
* optimize vmovaps/vmovapd after avx instructions
...
git-svn-id: trunk@27712 -
2014-05-01 19:20:35 +00:00
florian
8060d4a3f7
* when updating registers in RegUsedAfterInstruction, new reg. allocs should be ignored
...
git-svn-id: trunk@27711 -
2014-05-01 19:20:32 +00:00
nickysn
3dfc6ac7e1
* fixed the passing of extended floating type parameters on i8086 for
...
pocall_register after r24761 (it is the same change as in r24766, but for
pocall_register)
git-svn-id: trunk@27709 -
2014-05-01 16:45:49 +00:00
nickysn
906412411f
* fixed the passing of pushaddr paramaters for pocall_register in i8086 far data
...
memory models
git-svn-id: trunk@27708 -
2014-05-01 16:43:35 +00:00
nickysn
24bf272c69
* fixed the passing of array of const parameters in i8086 far data memory models
...
git-svn-id: trunk@27700 -
2014-05-01 12:46:29 +00:00
Jonas Maebe
724a6e9019
* fixed -Sx (mantis #25930 )
...
git-svn-id: trunk@27697 -
2014-04-30 19:43:34 +00:00
Jonas Maebe
270c2d700e
* allow the "then" part of an if-statement to be terminated by any endtoken,
...
instead of only by "else" (mantis #25781 )
git-svn-id: trunk@27696 -
2014-04-30 19:25:06 +00:00
nickysn
de1b8cf5d6
* use def_cgsize(parentfpvoidpointertype) instead of OS_ADDR in
...
tcgloadparentfpnode.pass_generate_code (should've been part of r27690)
git-svn-id: trunk@27693 -
2014-04-30 17:37:47 +00:00
nickysn
4ab9c6f206
+ fixed tcgtypeconvnode.second_class_to_intf for i8086 far data memory models
...
git-svn-id: trunk@27692 -
2014-04-30 14:05:35 +00:00
nickysn
cb33e51425
* tcgloadparentfpnode.pass_generate_code converted to the high level code
...
generator. This fixes nested access to parentfp in i8086 memory models where
DS<>SS.
git-svn-id: trunk@27690 -
2014-04-29 23:32:22 +00:00
nickysn
a7e5896504
+ parentfpvoidpointertype changed to a near 'ss' pointer on i8086
...
git-svn-id: trunk@27689 -
2014-04-29 23:17:22 +00:00
nickysn
7da8719036
+ support near pointers, bound to a segment register in hlcg.reference_reset_base
...
on i8086
git-svn-id: trunk@27688 -
2014-04-29 23:15:20 +00:00
nickysn
1eb24f9d98
+ remove the segment prefix in make_simple_ref on i8086, in case it is the same
...
as the default segment for the reference (SS for BP-relative, DS for all
others)
git-svn-id: trunk@27687 -
2014-04-29 23:11:10 +00:00
nickysn
a17c04c3e0
* fixed array to pointer conversion in i8086 far data memory models
...
git-svn-id: trunk@27683 -
2014-04-28 12:36:38 +00:00
nickysn
e8b9d9bf41
* converted tcgtypeconvnode.second_nil_to_methodprocvar to the high level code
...
generator, so it handles i8086 near and far pointers generically
- removed t8086typeconvnode.second_nil_to_methodprocvar, since it's no longer
necessary
git-svn-id: trunk@27678 -
2014-04-28 01:05:14 +00:00
nickysn
187c2af20e
* tcgtypeconvnode.second_proc_to_procvar converted to the high level code
...
generator, so it can now handle i8086 near and far pointers generically
- removed almost all of t8086typeconvnode.second_proc_procvar, since it's no
longer needed. Only a few assertions are left there to ensure that we don't
accidentally attempt to take the address of a near procedure in a far code
memory model, because the calling conventions are incompatible.
git-svn-id: trunk@27677 -
2014-04-27 23:18:05 +00:00
florian
24a9dd43b9
* do not crash with an ie on illegal boolean expressions in conditional compilation directives, resolves #25951
...
git-svn-id: trunk@27676 -
2014-04-27 15:50:37 +00:00
florian
99e1bb32a2
+ apply cse to more inline nodes
...
git-svn-id: trunk@27675 -
2014-04-27 14:28:17 +00:00
florian
6dd2edb10d
* better complexity estimation for some inline nodes
...
git-svn-id: trunk@27674 -
2014-04-27 14:28:01 +00:00
nickysn
214eaebf99
* fixed length(ansistring/widestring/dynarray) in i8086 far data memory models
...
git-svn-id: trunk@27673 -
2014-04-27 02:26:35 +00:00
nickysn
63f0731913
* 16/8-bit alu fix in tcgunaryminusnode.emit_float_sign_change
...
git-svn-id: trunk@27672 -
2014-04-26 18:58:22 +00:00
florian
33602db802
* try to registers more cleverly during fma code generation
...
git-svn-id: trunk@27671 -
2014-04-26 18:11:13 +00:00
nickysn
5dcbaa4b2d
- rm the cpu16bitalu and cpu64bitalu ifdefs from tcg.a_load_ref_cgpara as well
...
(basically the same change as in r27664, but in tcg, instead of thcgobj)
git-svn-id: trunk@27666 -
2014-04-26 14:33:46 +00:00
nickysn
9758a53fa6
- rm the ifdef cpu16bitalu and cpu64bitalu from thlcgobj.a_load_ref_cgpara,
...
because they:
- worsen readability (especially if we add cpu8bitalu as well, for
completeness)
- are not needed, because the else clause of the previous if ensures that we
have (sizeleft<=sizeof(aint)) and sizeof(aint) follows the target cpu alu
size
git-svn-id: trunk@27664 -
2014-04-26 13:46:36 +00:00
nickysn
d8d35a32c9
- rm bogus ifdef cpu16bitalu from tparamanager.allocparaloc and .freecgpara
...
(leftover from my initial hacky implementation of returning int64 function
results in ax:bx:cx:dx, that is no longer in use?)
git-svn-id: trunk@27662 -
2014-04-26 13:37:53 +00:00
nickysn
1d4de72aa7
+ 8-bit ALU support in tcgcasenode.genlinearcmplist
...
git-svn-id: trunk@27660 -
2014-04-26 12:41:58 +00:00
nickysn
3e308e0ad7
* 16/8-bit alu fix in thlcg2ll.location_force_reg for the 32->64 conversion of LOC_CONSTANT sources
...
git-svn-id: trunk@27654 -
2014-04-25 13:20:18 +00:00