Commit Graph

47749 Commits

Author SHA1 Message Date
marco
ffff774ff2 * fixes by lks of base.inc procptr types (one long->plong, three dword_ptr to ulong_ptr) fixes mantis #29023
git-svn-id: trunk@32456 -
2015-11-22 11:04:37 +00:00
Jonas Maebe
c4b347c271 * support anonymous procvar definitions for jvm outside parameter lists (in a
parameter list they represent nested procvars, which aren't supported yet)

git-svn-id: trunk@32454 -
2015-11-22 10:52:20 +00:00
svenbarth
318b69600c Fix for Mantis #29065.
+ add an ObjFPC variant of the test for 29053.

git-svn-id: trunk@32453 -
2015-11-22 10:44:03 +00:00
marco
f69e6730be * fix for #29036 overload sHOpenFolderAndSelectItems with a plain pointer versions
git-svn-id: trunk@32452 -
2015-11-22 10:42:54 +00:00
marco
de0f9e65c8 * fix bug #29061, add guids to gmp interfaces
git-svn-id: trunk@32449 -
2015-11-22 10:23:17 +00:00
Jeppe Johansen
5ec4d38231 Add support for ram-less AVR chips and simultanously optimize flash/ram size the initfinal calling sequence.
git-svn-id: trunk@32448 -
2015-11-22 00:37:10 +00:00
nickysn
7990b55a87 * use sizeof(aint) instead of sizeof(asizeint) to determine whether a record is
intregable in tstoreddef.is_intregable

git-svn-id: trunk@32447 -
2015-11-21 19:43:18 +00:00
marco
b371c43c3e * misc chm binindex logging (under ifdef)
git-svn-id: trunk@32446 -
2015-11-21 19:39:24 +00:00
Jeppe Johansen
49f8d574db Save some space on ATTiny28 since it doesn't have any ram.
git-svn-id: trunk@32445 -
2015-11-21 19:33:42 +00:00
nickysn
62dadad93e * reimplemented tppufile.getasizeint to use sizeof(asizeint), just like tppufile.putasizeint does
git-svn-id: trunk@32444 -
2015-11-21 18:59:50 +00:00
nickysn
0f6b5161e6 * the 'count' parameter of Move and FillChar on i8086 made 16-bit unsigned,
instead of signed (BP7 compatibility)

git-svn-id: trunk@32443 -
2015-11-21 17:55:47 +00:00
Jeppe Johansen
0046af39eb Fixed #29025.
Some architecture bit-nesses were missing.

git-svn-id: trunk@32442 -
2015-11-21 17:05:00 +00:00
Jeppe Johansen
baae6ec169 Fix incorrect AVR optimization.
git-svn-id: trunk@32441 -
2015-11-21 16:53:56 +00:00
svenbarth
1d72397c19 Add tests for generic functions/procedures/methods
git-svn-id: trunk@32440 -
2015-11-21 16:53:11 +00:00
svenbarth
c81eda7a42 Fully enable generic functions, procedures and methods by allowing inline specializations in procedure bodies as well.
Please note that this now also includes inline specializations of types in non-Delphi modes, thus removing a difference between modes Delphi and non-Delphi

pgentype.pas, inline_specialization_block_types:
  + add bt_body as valid block type

git-svn-id: trunk@32439 -
2015-11-21 16:52:09 +00:00
svenbarth
b2988ad8c0 pexpr.pas, sub_expr:
* generate_inline_specialization: fix Delphi-style inline specializations of generic methods

git-svn-id: trunk@32438 -
2015-11-21 15:59:11 +00:00
svenbarth
86f1ca2037 symtable.pas, is_visible_for_object:
* correctly handle the case that a generic method specialized in another unit needs to have access to private/protected members as well

git-svn-id: trunk@32437 -
2015-11-21 15:52:56 +00:00
svenbarth
2eeb59591a pdecsub.pas, parse_proc_head:
* register the type parameter symbols and their defs once we really keep them

git-svn-id: trunk@32436 -
2015-11-21 15:41:51 +00:00
nickysn
b9ca24d4df + added property to the omf object reader, specifying whether symbol names
should be case sensitive (on by default, for now)

git-svn-id: trunk@32435 -
2015-11-21 15:35:42 +00:00
nickysn
79336c59de * fixed test for PIC code on i386
git-svn-id: trunk@32434 -
2015-11-21 15:02:04 +00:00
florian
c9204f6c5e + added explicit rules for the iso7186 unit for the bsd targets
* fixed FreeBSD Makefile to work with make 3.82

git-svn-id: trunk@32433 -
2015-11-21 14:43:54 +00:00
svenbarth
fcae436177 Add test for Mantis #29053 to make sure it doesn't get broken by accident.
git-svn-id: trunk@32432 -
2015-11-21 14:35:35 +00:00
nickysn
82eb67cd24 * fixed test for PIC code on x86_64
git-svn-id: trunk@32431 -
2015-11-21 14:34:28 +00:00
Jonas Maebe
27219ae5ff * actually assign the section name for end of the resourcestrings
git-svn-id: trunk@32430 -
2015-11-21 14:31:08 +00:00
florian
1142fdeccd * initialize variables to avoid warnings
git-svn-id: trunk@32428 -
2015-11-21 14:14:30 +00:00
Jonas Maebe
f60a33f5af * moved darwin/aix-specific code for resource string sections to
ttai_lowleveltypedconstbuilder (will have to be handled differently
    for llvm)

git-svn-id: trunk@32427 -
2015-11-21 12:37:53 +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
8cebb76572 * corrected llvm level type of interfaces
git-svn-id: trunk@32425 -
2015-11-21 12:37:47 +00:00
Jonas Maebe
be69fbef4f * fixed type used to store copied open array value parameters
git-svn-id: trunk@32424 -
2015-11-21 12:37:43 +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
a55e9a8b0a * fixed type in second_class_to_intf if the class was in a LOC_REGISTER
git-svn-id: trunk@32422 -
2015-11-21 12:37:36 +00:00
Jonas Maebe
118f3c8049 * fixed type of stored exception class instance in on-node
git-svn-id: trunk@32421 -
2015-11-21 12:37:33 +00:00
Jonas Maebe
cc52730147 * typecast function results if an explicit type is forced
git-svn-id: trunk@32420 -
2015-11-21 12:37:30 +00:00
Jonas Maebe
83521e7d1f * ensure that the def used when calling virtual methods matches the
procdefinition (e.g. regarding the self parameter type)

git-svn-id: trunk@32419 -
2015-11-21 12:37:27 +00:00
Jonas Maebe
32796f4af9 * ensure that the def used when calling procvars matches the value in
the register (e.g., change it to only the procedure address in case of
    a complex procvar)

git-svn-id: trunk@32418 -
2015-11-21 12:37:24 +00:00
Jonas Maebe
00a5dd87c9 * allow g_ptrtypecast_reg() to allocate a new register, because spilling
a bitcast that reads from and writes to the same register doesn't
    work well
  * changed pointerdef parameters of g_ptrtypecast_reg()/ref() to regular tdef
    so that these routines can also be used with procvardefs (which are pointers,
    but not pointerdefs), except for the fromdef of g_ptrtypecast_ref() as this
    one has to call a_loadaddr_ref_reg() (which needs the pointeddef, and getting
    that is not possible for non-pointerdefs)

git-svn-id: trunk@32417 -
2015-11-21 12:37:20 +00:00
Jonas Maebe
abd79d275f * always emit the procdef when calling a routine in llvm; this is
only required when calling a routine that returns a procvardef or
    if it's a C-style varargs routine, but it's always allowed and
    always doing it simplifies procvar handling

git-svn-id: trunk@32416 -
2015-11-21 12:37:17 +00:00
Jonas Maebe
fed94f56c8 * fixed spilling_get_operation_type and spilling_get_reg_type for
la_call and la_invoke (operand 1 is the destination register
    since r30776)

git-svn-id: trunk@32415 -
2015-11-21 12:37:14 +00:00
Jonas Maebe
554be0c301 * fixed hlcg type correctness when getting the address of a virtual method
o handle interfaces like classrefdef, since they also point to the vmt

git-svn-id: trunk@32414 -
2015-11-21 12:37:11 +00:00
Jonas Maebe
a3cdf466e3 * fixed type of proc address when loading a complex procvar
git-svn-id: trunk@32413 -
2015-11-21 12:37:08 +00:00
Jonas Maebe
9a0cb50a08 * converted the result of fullownerhierarchyname to tsymstr so it (and
contcatenations based on it) can be longer than 255 characters in
    case tsymstr=ansistring

git-svn-id: trunk@32412 -
2015-11-21 12:37:04 +00:00
Jonas Maebe
eaeb9d8351 * renamed thlcgobj.g_set_addr_nonbitpacked_record_field_ref() to
thlcgobj.g_set_addr_nonbitpacked_field_ref() and adjusted it so that
    it also works for objects/classes (if the incoming reference points
    to the start of the class contents)
   o factored out the related code from tllvmsubscriptnode

git-svn-id: trunk@32411 -
2015-11-21 12:37:01 +00:00
Jonas Maebe
c8a5994e2e * fixed size used for left in in_smallset (it's been forced in a register
of size opdef a few lines before)

git-svn-id: trunk@32410 -
2015-11-21 12:36:58 +00:00
Jonas Maebe
1284032765 + llvm blockaddress() intrinsic (supported as of LLVM 3.5.1)
git-svn-id: trunk@32409 -
2015-11-21 12:36:55 +00:00
Jonas Maebe
949fd53a0a - reverted r32315: targets using the high level code generator should keep
complex procvars either in a single "register", or in memory

git-svn-id: trunk@32408 -
2015-11-21 12:36:51 +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
ae5a355f06 * helpers to load registers/constants into a record field at the hlcg level
git-svn-id: trunk@32406 -
2015-11-21 12:36:45 +00:00
Jonas Maebe
8d8851afd6 * set minimum alignment for pchar to 1 instead of 0 (llvm doesn't
support alignment 0)

git-svn-id: trunk@32405 -
2015-11-21 12:36:42 +00:00
Jonas Maebe
7b93e40530 * fixed opcode in second_sqr_real
git-svn-id: trunk@32404 -
2015-11-21 12:36:39 +00:00
Jonas Maebe
7ce34ac7d2 * fixed code generator type correctness when loading a resourcestring
git-svn-id: trunk@32403 -
2015-11-21 12:36:35 +00:00