Commit Graph

46664 Commits

Author SHA1 Message Date
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
Jonas Maebe
0031e12bf3 * enable the code that determines the complexity of arguments to inline
routines to see through free type conversions (such as type conversions
    inserted for absolute variables, like the 'result' variable)

git-svn-id: trunk@31490 -
2015-09-03 13:36:03 +00:00
Jonas Maebe
ee3f89246c * assume that compilerprocs never capture the addresses of their arguments
git-svn-id: trunk@31489 -
2015-09-03 13:35:59 +00:00
Jonas Maebe
2b551d0241 * don't do anything in SetCodePage() if the requested code page is the same
as the current one, even if there are multiple references to the string

git-svn-id: trunk@31488 -
2015-09-03 13:35:55 +00:00
nickysn
92c831c3dd * writing of omf section attributes in the NASM asm writer rewritten to use the
new functions in unit omfbase (also used by the internal asm)

git-svn-id: trunk@31487 -
2015-09-03 13:32:17 +00:00
nickysn
cc2e27b555 * the function which returns the alignment of omf sections moved to unit
omfbase, so it can be used by the nasm asm writer as well

git-svn-id: trunk@31486 -
2015-09-03 12:36:58 +00:00