florian
82e6e1eb34
+ tempinfo flag ti_no_final_regsync which prevents that the final reg. sync. is emitted
...
git-svn-id: trunk@34787 -
2016-11-05 23:05:41 +00:00
florian
8c701eaa7b
* reset c in dir_include if it will be re-read
...
git-svn-id: trunk@34786 -
2016-11-05 23:05:39 +00:00
Károly Balogh
37f43d3604
m68k: cleanup of the BuildRefExpression method in the assembler reader
...
git-svn-id: trunk@34784 -
2016-11-05 19:58:06 +00:00
Károly Balogh
64650261d1
m68k: refactor of the reglist and the regpair support in the assembler reader. also added support for float register lists for FMOVEM
...
git-svn-id: trunk@34783 -
2016-11-05 18:53:20 +00:00
Károly Balogh
5237a4d5e2
m68k: support register pair operands in assembler reader and writer, as used by some instructions (mainly DIVS/DIVU and friends) so we don't have to hack them as three operand instructions
...
git-svn-id: trunk@34782 -
2016-11-05 17:07:18 +00:00
Károly Balogh
e0e90fffc4
make rgobj.uses_registers also return true, when the rg never allocated an imreg, but there were direct cpu register allocations. this at least fixes some address regvar trashing on 68k in relation to syscalls' explicit paralocs
...
git-svn-id: trunk@34777 -
2016-11-03 01:45:34 +00:00
Károly Balogh
57e6cef18b
m68k: enabled the mul to shift+sub/add optimizations for 68000
...
git-svn-id: trunk@34762 -
2016-10-23 23:46:32 +00:00
Károly Balogh
4620d9b22c
m68k: when loading from a reference with zero extend, clear the register first, then load, instead of clearing with AND later, because this is faster on slow 68ks and also shorter
...
git-svn-id: trunk@34761 -
2016-10-23 23:16:03 +00:00
Károly Balogh
41776e9608
m68k: on a '000, optimize CLR.L Dx to MOVEQ #0,Dx which is slightly faster
...
git-svn-id: trunk@34760 -
2016-10-23 23:10:39 +00:00
Károly Balogh
660432685a
m68k: review and some cleanup of the shlshrnode, also add a special case for shifting 64bit values by 1
...
git-svn-id: trunk@34757 -
2016-10-23 16:46:34 +00:00
florian
781d6f31a8
* more getsupreg(...)<>/=getsupreg(...) replaced by SuperRegisterEqual which is more safe, the former could break as the register could have different register types
...
git-svn-id: trunk@34746 -
2016-10-20 18:32:23 +00:00
pierre
abaea9959f
Fix parameter loading of FPC_CHECKPOINTER to handle correctly references with offsets
...
git-svn-id: trunk@34743 -
2016-10-18 21:48:59 +00:00
nickysn
e1792e712a
* changed the 'size' parameter of fpc_zeromem and fpc_fillmem from ptruint to sizeuint
...
git-svn-id: trunk@34741 -
2016-10-18 15:42:29 +00:00
florian
502e48541c
* properly copy flags of tempinfo
...
+ write flags of tempinfo in ttemprefnode.printnodedata
git-svn-id: trunk@34738 -
2016-10-16 19:53:14 +00:00
florian
cfd38388ca
* formatting so lazarus can handle it
...
git-svn-id: trunk@34737 -
2016-10-16 19:53:12 +00:00
joost
bf8e3c9264
* Added example to samplecfg, to make clear which path is meant
...
git-svn-id: trunk@34733 -
2016-10-16 16:50:05 +00:00
florian
cf2a3d8160
+ new debug message
...
* turn off accidently turned on DEBUG_AOPTCPU
git-svn-id: trunk@34731 -
2016-10-16 16:37:51 +00:00
florian
bc73d0914e
* TAOptBase.RegInRef compares using SuperRegistersEqual as TAOptBase.RegInOp does for top_reg already
...
git-svn-id: trunk@34730 -
2016-10-16 16:35:36 +00:00
joost
d08a747c29
* Create fppkg-config files in the new format (v5)
...
git-svn-id: trunk@34729 -
2016-10-16 15:43:27 +00:00
florian
9c81e90e08
+ extension to iso mode: reset/rewrite can take a file name as a second parameter
...
git-svn-id: trunk@34726 -
2016-10-16 07:55:08 +00:00
florian
fe0ce2f456
* TX86AsmOptimizer.OptPass1MOV should be left, after an optimization has been carried out, instead the outer loop should call it again, resolves issue #30277
...
git-svn-id: trunk@34724 -
2016-10-15 19:36:18 +00:00
florian
ec54cb2a7a
- unit not used anymore
...
git-svn-id: trunk@34723 -
2016-10-15 17:58:38 +00:00
florian
239c6639d7
+ additional debug message
...
git-svn-id: trunk@34722 -
2016-10-15 17:51:09 +00:00
florian
76961dbc70
* fixes MovOpMov2Op
...
git-svn-id: trunk@34721 -
2016-10-15 15:03:27 +00:00
florian
e6cea6622e
* when checking if a register is used by an operand, compare the super registers
...
git-svn-id: trunk@34720 -
2016-10-15 15:03:26 +00:00
florian
8e9f4af801
* fixed checking of operands of MovOpMov2Op
...
* MovOpMov2Op optimization got proper naming
git-svn-id: trunk@34719 -
2016-10-15 15:03:24 +00:00
florian
4109f88e08
* AllocRegBetween always extends the processed register to the whole super register and takes care of this while removing (de)/allocs
...
git-svn-id: trunk@34718 -
2016-10-15 15:03:23 +00:00
nickysn
ac186eb85d
* use sizeuinttype instead of ptruinttype for the array range type in the
...
structure, created by TVMTWriter.gettabledef
git-svn-id: trunk@34715 -
2016-10-14 13:22:05 +00:00
svenbarth
d4e573c1e3
* fix for Mantis #27349 : nested classes might also reside inside records
...
+ added test
git-svn-id: trunk@34714 -
2016-10-13 20:40:47 +00:00
svenbarth
254be82c43
* revert r34712: the behavior with the class constructors is indeed Delphi compatible. However only one class constructor/destructor per class is allowed no matter how it's named.
...
git-svn-id: trunk@34713 -
2016-10-13 20:11:35 +00:00
svenbarth
4e5ed5b0e2
Fix for Mantis #30729 : don't allow other names for class constructors or destructors than Create and Destroy respectively.
...
+ added tests
git-svn-id: trunk@34712 -
2016-10-13 19:24:07 +00:00
nickysn
7ee133162c
* use OMF section names, starting with dot for the dwarf debug info for
...
compatibility with the Watcom linker and debugger
git-svn-id: trunk@34708 -
2016-10-12 13:05:12 +00:00
nickysn
501b9481c5
* use .create_nil_codeptr instead of .create_pint(0) for writing the placeholder
...
address of implementation field in tobjcrttiwriter.gen_objc_cat_methods
git-svn-id: trunk@34705 -
2016-10-10 15:40:10 +00:00
nickysn
9669e5aa00
* use .create_nil_dataptr instead of .create_pint(0) for writing the 'next'
...
field in tobjcrttiwriter.gen_objc_protocol_list
git-svn-id: trunk@34704 -
2016-10-10 14:03:52 +00:00
Károly Balogh
b8e1151eed
atari: add tf_requires_proper_alignment to the atari target
...
git-svn-id: trunk@34703 -
2016-10-09 22:56:23 +00:00
florian
57ca8647b3
* better peephole optimization tracing
...
git-svn-id: trunk@34698 -
2016-10-09 13:41:38 +00:00
Jonas Maebe
5efb32285a
* fixed alignment for interface RTTI (patch by Alfred, mantis #30182 )
...
git-svn-id: trunk@34695 -
2016-10-09 12:34:01 +00:00
Károly Balogh
51cb5aefbe
m68k: use target_info.stackalign to align the stack instead of expecting a hardwired longword alignment. this is required for atari, and beneficial on all '000 targets
...
git-svn-id: trunk@34666 -
2016-10-08 14:01:32 +00:00
nickysn
657685a8b6
* use sizesinttype instead of ptrsinttype for the index and high parameter of
...
open arrays/dynarrays/string-like char arrays, etc.
git-svn-id: trunk@34665 -
2016-10-08 13:56:24 +00:00
nickysn
d6007d650a
* use tpointerdef.pointer_arithmetic_int/uint_type in tinlinenode.pass_typecheck
...
for handling inc/dec(pointer, int)
git-svn-id: trunk@34655 -
2016-10-08 12:06:57 +00:00
nickysn
35b0201002
+ added an unsigned counterpart to tpointerdef.pointer_arithmetic_it_type (needed by inc/dec)
...
git-svn-id: trunk@34653 -
2016-10-08 11:45:24 +00:00
nickysn
5501061115
* use sizesinttype instead of ptrsinttype for the $length and $mlength fields,
...
when creating the $pvmt system type
git-svn-id: trunk@34650 -
2016-10-08 00:48:34 +00:00
nickysn
163d54c33e
* emit a sizeint-sized string length for long string constants in the DWARF
...
debug info, instead of using create_pint
git-svn-id: trunk@34649 -
2016-10-07 22:36:48 +00:00
nickysn
d28963f434
* emit the heap and stack sizes via Tai_const.Create_int_dataptr, instead of
...
using create_pint
git-svn-id: trunk@34646 -
2016-10-07 20:58:50 +00:00
nickysn
7d15b688e8
* TInterfaceEntry changed to a variant record, that overlays a CodePointer on
...
top of the IOffset: SizeUInt field, because it is sometimes used as a
CodePointer (for etStaticMethodResult and etStaticMethodClass) and sometimes
as a SizeInt and these two types can be of different size in certain i8086
memory models
git-svn-id: trunk@34645 -
2016-10-07 20:18:02 +00:00
nickysn
bacea005fc
* emit a sizeint, not a ptruint for TableCount in tnodeutils.InsertRuntimeInitsTablesTable as well
...
git-svn-id: trunk@34643 -
2016-10-07 17:21:52 +00:00
Jonas Maebe
233622157c
* don't attempt to load the VMT of a niln when taking the address of a
...
class method (mantis #30706 )
git-svn-id: trunk@34641 -
2016-10-07 16:41:32 +00:00
nickysn
16dfb839d8
* emit a sizeint, not a ptruint for TableCount in tnodeutils.InsertResourceTablesTable
...
git-svn-id: trunk@34638 -
2016-10-07 13:49:48 +00:00
nickysn
7fceb8aa1f
* use .Create_sizeuint and sizeuinttype when writing tinterfacetable.EntryCount
...
git-svn-id: trunk@34635 -
2016-10-06 14:23:37 +00:00
Jonas Maebe
9727f289b1
+ tcalo_apply_constalign option to specify that the alignment should be
...
modified by applying user alignment settings (so it can be only done for
user-defined data, not not for internally generated data)
o set this option for user-defined data
git-svn-id: trunk@34633 -
2016-10-06 06:25:05 +00:00