Commit Graph

46819 Commits

Author SHA1 Message Date
nickysn
10a01c0127 + import catch, throw and stack management win16 api functions
git-svn-id: trunk@31540 -
2015-09-05 21:41:37 +00:00
nickysn
e09f230250 + added the pointer validation win16 apis
git-svn-id: trunk@31539 -
2015-09-05 21:02:43 +00:00
nickysn
4d43d8d909 + import the win16 debug apis
git-svn-id: trunk@31538 -
2015-09-05 20:45:22 +00:00
nickysn
1b84fbee57 + add win16 to systems_all_windows; this enables the win32-like mangling of the
dll internal symbols names on win16 as well

git-svn-id: trunk@31537 -
2015-09-05 20:06:59 +00:00
nickysn
6e09a4ff92 + enable compilation of the uuchar, objpas and strings units for the win16 target
git-svn-id: trunk@31536 -
2015-09-05 19:45:52 +00:00
nickysn
72d6876225 + initialize the PrefixSeg variable from the win16 startup code
git-svn-id: trunk@31535 -
2015-09-05 18:03:37 +00:00
nickysn
a062fb17b3 + added makefiles for the win16 rtl
git-svn-id: trunk@31534 -
2015-09-05 15:50:19 +00:00
nickysn
8610065db4 + started porting the win16 api units
git-svn-id: trunk@31533 -
2015-09-05 15:48:40 +00:00
nickysn
393d86a2e5 + implemented writing proper win16 dll import libraries
git-svn-id: trunk@31532 -
2015-09-05 13:45:23 +00:00
nickysn
049171c69c * moved the imports of InitTask, WaitEvent and InitApp to the win16 startup module
git-svn-id: trunk@31531 -
2015-09-05 12:43:26 +00:00
nickysn
c2c008c09a * switch to a full blown win16 system unit
git-svn-id: trunk@31530 -
2015-09-05 12:39:58 +00:00
nickysn
4068a05631 + support the 'absolute seg:ofs' variable declaration in the win16 target as well
git-svn-id: trunk@31529 -
2015-09-05 12:07:29 +00:00
nickysn
8bca76e645 * improved formatting and added comments to the win16 startup code
git-svn-id: trunk@31528 -
2015-09-05 11:48:05 +00:00
nickysn
e83f3d2978 * updated all the remaining makefiles that 'fpcmake -r' missed
git-svn-id: trunk@31527 -
2015-09-05 11:21:36 +00:00
nickysn
e05aec2083 + added the win16 target to fpmake
git-svn-id: trunk@31526 -
2015-09-05 11:11:59 +00:00
nickysn
2e3cb70489 * regenerated makefiles after adding the win16 target
git-svn-id: trunk@31525 -
2015-09-05 11:02:54 +00:00
nickysn
fb0f606793 * update revision.inc
git-svn-id: trunk@31524 -
2015-09-05 10:52:13 +00:00
nickysn
b8b90f96a1 + added the win16 target to fpcmake
git-svn-id: trunk@31523 -
2015-09-05 10:15:10 +00:00
nickysn
3145d68fdb * fixed compilation of ppudump
git-svn-id: trunk@31522 -
2015-09-05 03:38:51 +00:00
nickysn
839ab714cc + started implementing a win16 target :)
git-svn-id: trunk@31521 -
2015-09-05 02:47:42 +00:00
nickysn
a1d29b8251 * always pop DS in huge memory models in asm routines that don't specify
'nostackframe'

git-svn-id: trunk@31520 -
2015-09-04 21:51:04 +00:00
nickysn
98ec7a2211 * eliminated the dual initialization of DS in interrupt procedures in the huge
memory model

git-svn-id: trunk@31519 -
2015-09-04 21:37:07 +00:00
nickysn
4c9b339c22 + added the huge memory model option to the compiler help screen
git-svn-id: trunk@31518 -
2015-09-04 20:43:38 +00:00
nickysn
69042574b2 * assume external variables are in a different segment in the huge memory model
git-svn-id: trunk@31517 -
2015-09-04 19:39:55 +00:00
nickysn
2087290802 * i8086 huge memory model threadvar code generation fixes
git-svn-id: trunk@31516 -
2015-09-04 19:15:10 +00:00
nickysn
2b42c17318 + also initialize the proper (foreign) segment when loading a global variable
from another unit in the huge memory model

git-svn-id: trunk@31515 -
2015-09-04 16:05:52 +00:00
svenbarth
eaab604f0c pgenutil.pas:
* split generate_specialization() into two phases: generate_specialization_phase1() and generate_specialization_phase2(); the former parses the generic parameters and determines the correct generic def while the latter does the real specialization. This is needed for generic functions/methods as no full specialization needs to be done until overload selection by tcallcandidates
pgentype.pas:
  + new type tspecializationcontext

git-svn-id: trunk@31514 -
2015-09-04 15:37:54 +00:00
svenbarth
5255c936d3 symsym.pas:
+ add an overload of check_hints() that allows to specify the current file position
  * have the previous check_hints() procedure be an inline procedure as it simply calls the new overload

git-svn-id: trunk@31513 -
2015-09-04 14:50:16 +00:00
svenbarth
af75198907 symsym.pas:
+ provide possibility to create syms that are not registered in the current module. These syms won't be stored in the ppu.

git-svn-id: trunk@31512 -
2015-09-04 14:43:02 +00:00
nickysn
1487236f29 + support addr_fardataseg references in the internal asm writer
git-svn-id: trunk@31511 -
2015-09-04 14:33:48 +00:00
svenbarth
938c8335a9 symdef.pas:
* provide possibility to create defs that are not registered in the current module and also not in the symtablestack. These defs won't be stored in the ppu.

git-svn-id: trunk@31510 -
2015-09-04 14:24:27 +00:00
svenbarth
66df1cafb1 pdecsub.pas:
* move handling after parsing a procedure's/function's/method's name and its parameters from parse_proc_dec() into a new function parse_proc_dec_finish(), so that it can be used for generic functions/methods in the future

git-svn-id: trunk@31509 -
2015-09-04 14:03:16 +00:00
michael
f759815d04 * Patch from Inoussa to decompose canonically (to be able to implement CompareText)
git-svn-id: trunk@31508 -
2015-09-04 13:58:28 +00:00
svenbarth
e8fca1c9c0 * move tspecializationstate from pgenutil.pas into a new unit named pgentype.pas which contains types related to generics with as few dependencies as possible.
git-svn-id: trunk@31507 -
2015-09-04 13:37:06 +00:00
svenbarth
267adf4e46 scanner.pas, tscanner:
+ new method to check how many token replays are currently active. This is needed for example to determine the end of a generic method which may contain modifiers and such.

git-svn-id: trunk@31506 -
2015-09-04 13:27:28 +00:00
nickysn
cbaa02e7b5 + support writing more than 1024 zeros in TObjSection.WriteZeros
git-svn-id: trunk@31505 -
2015-09-04 13:26:37 +00:00
svenbarth
5b216cca08 scanner.pas, tscanner:
* extend the state of the scanner that is saved/restored when starting/stopping a token recording so that the token recorder can be started on every kind of token.

git-svn-id: trunk@31504 -
2015-09-04 13:24:45 +00:00
nickysn
4a855b140a + support mixing initialized and bss data in the same object section (only in
case the section options contain the new option 'oso_sparse_data') in the
  internal object writer (needed for the huge memory model)

git-svn-id: trunk@31503 -
2015-09-04 13:16:45 +00:00
nickysn
1264eaf8c6 * fixed "nil pointer assignment" error in huge memory model
git-svn-id: trunk@31502 -
2015-09-03 22:37:01 +00:00
nickysn
63f86ee6a5 + huge memory model fixes in the i8086-msdos startup code
git-svn-id: trunk@31501 -
2015-09-03 22:08:53 +00:00
nickysn
0fdc62e0f7 + initialize DS with the current unit's data segment in the function entry code
generated in the huge memory model

git-svn-id: trunk@31500 -
2015-09-03 21:44:16 +00:00
nickysn
2725b1160b * name the 'FAR_DATA' class segments as module_name+'_DATA'
git-svn-id: trunk@31499 -
2015-09-03 19:00:55 +00:00
nickysn
97f65d350d + position the 'FAR_DATA' segments after the 'CODE' segments and before the
regular 'DATA' segments

git-svn-id: trunk@31498 -
2015-09-03 17:57:27 +00:00
nickysn
f14f4ff924 * use the 'FAR_DATA' segment class name instead of 'DATA' or 'BSS' in the huge
memory model

git-svn-id: trunk@31497 -
2015-09-03 17:53:15 +00:00
nickysn
cfab5d3d3e * the omfbase.omf_segclass const array converted to function in order to be able
to return different names for some sections in the huge memory model

git-svn-id: trunk@31496 -
2015-09-03 17:48:07 +00:00
nickysn
8458bbfaf6 + enabled the huge memory model command line option
git-svn-id: trunk@31495 -
2015-09-03 17:31:41 +00:00
nickysn
cf144a7fb7 * use a dummy non-nil pointer in FSectionsUsed and FSectionsInDGROUP, because
TFPHashList refuses to add an item with nil pointer data

git-svn-id: trunk@31494 -
2015-09-03 15:14:00 +00:00
nickysn
3b36e3d0b5 * declare segments as use16 or use32 in the nasm asm writer
git-svn-id: trunk@31493 -
2015-09-03 13:57:36 +00:00
nickysn
672ff1d863 * fixed memleak after r31487
git-svn-id: trunk@31492 -
2015-09-03 13:40:00 +00:00
nickysn
314b5e5eac * fixed class name in comment
git-svn-id: trunk@31491 -
2015-09-03 13:36:12 +00:00