Commit Graph

48621 Commits

Author SHA1 Message Date
svenbarth
f27ce0b159 Rework the way the method bodies for specializations are generated: instead of walking the global and local symboltable all pending specializations are kept in a list of the current module which is (for now) walked at the end of a unit/program to generate the method bodies as before.
fmodule.pas, tmodule:
  + new list pendingspecializations which keeps track of all pending specializations of the current module
psub.pas:
  * move generate_specialization_procs and related routines to pgenutil
  + new procedure read_proc_body to read a routine's body, cause generate_specialization_procs needs it (unlike the already existing overload in the implementation section, this one can only handle bodies of non-nested routines) 
pgenutil.pas:
  * generate_specialization_phase2: add the newly specialized generic to the current module's pending specializations
  * generate_specialization_procs: reworked so that it uses the new pendingspecializations field instead of walking the global and local symboltable of the current unit
pmodules.pas:
  + add pgenutil to uses due to the moved generate_specialization_procs

+ added test

git-svn-id: trunk@33826 -
2016-05-26 18:56:16 +00:00
svenbarth
2f6a1c01ba pgenutil.pas, generate_specialization_phase2:
* ensure that the owner of the newly greated def is set to the symtable we specialize in (happens with generic routines)

git-svn-id: trunk@33825 -
2016-05-26 18:37:37 +00:00
svenbarth
f8def6dbc9 Store and use procedure directives of generic routines.
scanner.pas, tscannerfile:
  + new method is_recording_tokens to check whether token recording is already active
pdecsub.pas, parse_proc_directives:
  * record tokens into the declaration token buffer of a generic routine if necessary
pgenutil.pas, generate_specialization_phase2:
  * process the procedure directives that had been recorded with the generic routine

git-svn-id: trunk@33824 -
2016-05-26 18:35:08 +00:00
Károly Balogh
a2a630e9c5 m68k: fixed and enabled hardware mod/div support for coldfire, also it no longer depends on cpu family but cpu capability
git-svn-id: trunk@33821 -
2016-05-26 16:54:39 +00:00
Károly Balogh
931c14f0cf m68k: in second_int_to_bool, don't call TST after OR, since OR sets the flags as required already
git-svn-id: trunk@33819 -
2016-05-26 14:48:56 +00:00
Károly Balogh
766eeffc69 m68k: build fix. (changes before commit is a bad idea...)
git-svn-id: trunk@33817 -
2016-05-26 14:47:16 +00:00
Károly Balogh
2bfa1b995a m68k: added division/remainder cpu capabilities
git-svn-id: trunk@33816 -
2016-05-26 14:41:00 +00:00
Károly Balogh
6706445cb4 m68k: enable hardware divisions for all '020+, not only 020 itself
git-svn-id: trunk@33810 -
2016-05-26 10:38:08 +00:00
Károly Balogh
aa63aa95bb m68k: a bunch of '000 related fixes and cleanups. generated source now compiles for '000 again, which was broken due to recent improvements conflicting with limitations of the original '000
git-svn-id: trunk@33809 -
2016-05-26 10:33:29 +00:00
Károly Balogh
62e0eab89b m68k: also handle large register save/restore offsets on 68000
git-svn-id: trunk@33808 -
2016-05-26 00:04:55 +00:00
Károly Balogh
0dd5beb064 m68k: more unaligned access support in the base cg, also enabled the code
git-svn-id: trunk@33807 -
2016-05-26 00:03:25 +00:00
Károly Balogh
b6d845e732 m68k: needs_unaligned helper. returns true when the given reference with the given size needs to be loaded with unaligned support on the given cpu
git-svn-id: trunk@33806 -
2016-05-25 23:56:24 +00:00
Károly Balogh
391a79aebf m68k: a bunch of tweaks and improvements to assembly functions. higher move() speed on coldfire, disabled fillword implementation on CPUs not supporting unaligned access
git-svn-id: trunk@33805 -
2016-05-25 22:44:18 +00:00
Károly Balogh
7fbae10515 m68k: added more cpu capabilities (unaligned access, long addressing, various MULx), and the 68060 cpu target
git-svn-id: trunk@33804 -
2016-05-25 22:14:58 +00:00
michael
cf6f3b7024 * Split autostore in autoconf/autosession
git-svn-id: trunk@33791 -
2016-05-25 15:49:35 +00:00
Károly Balogh
a82196bf84 * now Amiga and MorphOS defines tf_requires_proper_alignment. for 68k Amiga it's required for 68000, on others it's not mandatory but beneficial
git-svn-id: trunk@33788 -
2016-05-25 09:54:01 +00:00
nickysn
c78f406d99 + implemented proper stack checking for the i8086
git-svn-id: trunk@33787 -
2016-05-24 23:57:47 +00:00
florian
9daa4bd48d * always generate unaligned pointer entries (so .4bytes instead of .long is generated) in dwarf debugging info
git-svn-id: trunk@33782 -
2016-05-24 18:58:01 +00:00
svenbarth
a35627628c Fix potential access violations when compiling units with helper types and/or generics
fmodule.pas, tmodule:
  * end_of_parsing: free neither extendeddefs nor genericdummysyms as both might be used by the def-aware symtablestack even after parsing the unit is done

git-svn-id: trunk@33780 -
2016-05-24 14:32:04 +00:00
michael
a1e5c122f2 * Some updates from Graeme Geldenhuys
- pdf: updates demo with a landscape page.
  - pdf: Intenal Coordinate Matrix was not always adjusted when needed.
    eg: When the Page.Orientation was changed, PaperType was changed and so on.
  - pdf: Extra sanity check to prevent a possible AV.  
  - TTF: new FixPathDelimiters() to fix font search paths.

git-svn-id: trunk@33779 -
2016-05-24 14:29:17 +00:00
michael
73ab7d877a * Fix 30181: correctly finalize fontmanager
git-svn-id: trunk@33778 -
2016-05-24 12:43:46 +00:00
michael
300db70983 * Updated from latest service descriptions
git-svn-id: trunk@33777 -
2016-05-24 08:35:58 +00:00
michael
4d671cd49d * Fix bug #30174, by default allow additional properties
git-svn-id: trunk@33776 -
2016-05-24 08:33:45 +00:00
michael
1d54f9f3e7 * Improved code generator to take care of some corner cases (duplicate identifiers, linefeeds in descriptions)
git-svn-id: trunk@33775 -
2016-05-24 08:32:58 +00:00
michael
2121a3ae39 * Improved code generator to take care of some corner cases
git-svn-id: trunk@33774 -
2016-05-24 08:32:10 +00:00
pierre
345361beef Revert commit 33771 and directly replace cpu8086 by cpui8086 which is always defined by ppc8086 compiler
git-svn-id: trunk@33773 -
2016-05-24 06:52:17 +00:00
michael
904b28bde2 * Small patch from Graeme Geldenhuys to make coding style more coherent (bug id 30114)
git-svn-id: trunk@33772 -
2016-05-24 06:49:18 +00:00
pierre
ba509152b8 Also define CPUSMALL macro if CPUI8086 is defined
git-svn-id: trunk@33771 -
2016-05-23 21:07:11 +00:00
pierre
6646a0d29f Correct tseg.pp test for i8086 CPPU for which seg/cseg/dseg/sseg should NOT return zero values
git-svn-id: trunk@33770 -
2016-05-23 20:58:37 +00:00
pierre
74b3481918 Use small number for Blocks constant for i8086 CPU also
git-svn-id: trunk@33769 -
2016-05-23 20:51:07 +00:00
nickysn
0a9bcf0369 + added the new test/units/windows directory to the list of dirs, searched for tests by the makefile
git-svn-id: trunk@33763 -
2016-05-23 17:22:07 +00:00
pierre
4ff01e1f41 Modify tnodeutils.insertbsssym method to generate indirect symbol only if flags contains tf_supports_packages
git-svn-id: trunk@33762 -
2016-05-23 15:31:18 +00:00
lacak
33d48897d7 fcl-db: sqldb: when parsing SQL end of /* comment */ is not detected if ends with **/. Bug #30171
git-svn-id: trunk@33761 -
2016-05-23 07:25:21 +00:00
florian
57f93ed40d * correctly generate accesses to jump tables if it contains negative entries, resolves issue #30119
git-svn-id: trunk@33760 -
2016-05-22 21:02:49 +00:00
Károly Balogh
963c4aa1f8 * fixed the sign handling of i386 fpc_div_int64 helper (Mantis 30166)
git-svn-id: trunk@33753 -
2016-05-22 16:57:30 +00:00
nickysn
bffe9480f4 + added the winapi functions, structures and constants for raw keyboard and mouse input
git-svn-id: trunk@33746 -
2016-05-22 01:59:27 +00:00
Károly Balogh
e2b3c6389f fcl-net: fixed the build after r33728 on everything which is non-Unix and non-Windows...
git-svn-id: trunk@33745 -
2016-05-22 01:02:48 +00:00
Károly Balogh
5acd04d284 m68k: some experimental code for the unaligned access support on plain 68000. work in progress, inactive code for now
git-svn-id: trunk@33744 -
2016-05-22 00:32:41 +00:00
Károly Balogh
a6ee4a2ded m68k: cleaned up second_addordinal and included OP_SUB in the common codepath
git-svn-id: trunk@33743 -
2016-05-21 18:43:26 +00:00
michael
07073c09a6 * Added Proxy support: bug ID #26270
git-svn-id: trunk@33742 -
2016-05-21 18:19:38 +00:00
Károly Balogh
47621f81cd m68k: implemented second_addordinal; for the most trivial cases. this allows the right node to be a reference. falls back to the generic implementation for nontrivial cases.
git-svn-id: trunk@33741 -
2016-05-21 16:46:12 +00:00
nickysn
dd9ea88b79 * TObjSection.MemPos reverted back to qword after r33692, since it breaks the
i8086-msdos internal linker for .exe files larger than 64kb (thanks pierre for
  investigating this issue)

git-svn-id: trunk@33740 -
2016-05-21 16:45:36 +00:00
Károly Balogh
786aecabeb m68k: improved a_op_reg_ref, to support more operations. implemented a_op_ref_reg
git-svn-id: trunk@33739 -
2016-05-21 16:41:13 +00:00
Jonas Maebe
0e9d232d2a * fixed indentation in previous commit
git-svn-id: trunk@33738 -
2016-05-21 14:51:24 +00:00
Jonas Maebe
fe5cf94e10 * moved generation of initialisation/finalisation nodes from the code
generator to psub and ngenutil
   o removed dependence of hlcgobj on pass_1

git-svn-id: trunk@33737 -
2016-05-21 14:48:34 +00:00
Jonas Maebe
60d75fa97e * fixed (harmless) range error in 64 bit BSD-based RTLs
git-svn-id: trunk@33736 -
2016-05-21 14:48:32 +00:00
michael
bd06efefa2 * Support for AcceptIdleTimeout, correct termination when running threaded (bug ID 29879)
git-svn-id: trunk@33735 -
2016-05-21 10:59:09 +00:00
michael
c05373bfe1 * Do not raise error if a connection was created during accept, silently drop the connection
git-svn-id: trunk@33734 -
2016-05-21 10:58:08 +00:00
Jonas Maebe
46166c89cb - removed no longer used and unsafe ttemprefnode.create_offset()
functionality

git-svn-id: trunk@33733 -
2016-05-21 10:28:28 +00:00
Jonas Maebe
712e4f90d6 - removed (unnecessary) use of ctemprefnode.create_offset() while parsing
array constructors

git-svn-id: trunk@33732 -
2016-05-21 10:28:25 +00:00