Commit Graph

52728 Commits

Author SHA1 Message Date
florian
c63c3e99c7 * load environment on msdos if parameters are loaded, so paramstr(0) is loaded as well
git-svn-id: trunk@38205 -
2018-02-11 17:49:17 +00:00
florian
092223f400 * comment links to test now
git-svn-id: trunk@38204 -
2018-02-11 16:38:33 +00:00
florian
e5ebc65cce * if si and di are allocated on i8086, using an index in references is not possible anymore
git-svn-id: trunk@38203 -
2018-02-11 15:54:37 +00:00
florian
22df9cde3e * halt and runerror never return
git-svn-id: trunk@38202 -
2018-02-11 10:21:16 +00:00
nickysn
f5e6b40486 + extended test tasm18.pp with recordtype*constant and
recordtype.recordfield*constant expressions in asm references

git-svn-id: trunk@38201 -
2018-02-11 03:43:31 +00:00
nickysn
ae6a4030c3 + support evaluation of recordtype*constant in the intel syntax inline asm.
The recordtype itself is evaluated to 0. This makes e.g.
  'test [di+recordtype*5], 1' work. This is TP7 compatible.

git-svn-id: trunk@38200 -
2018-02-11 03:42:45 +00:00
nickysn
a834e6d5c5 + added test tasm18b.pp, which is yet another for 3-byte records, which should
not set a valid operand size in the intel asm syntax mode. The difference
  with tasm18a.pp is, this one tests recordtype.a3bytefield, while tasm18a.pp
  tests a3byterecord directly.

git-svn-id: trunk@38199 -
2018-02-11 01:25:17 +00:00
Károly Balogh
3d16d38f10 atari: enable FPC_STDOUT_TRUE_ALIAS and groom some of the other defines
git-svn-id: trunk@38198 -
2018-02-10 23:01:54 +00:00
Károly Balogh
444d032607 msdos: enable FPC_STDOUT_TRUE_ALIAS by default
git-svn-id: trunk@38197 -
2018-02-10 22:46:48 +00:00
Károly Balogh
07513150e0 * make StdOut/StdErr optionally a true alias of Output/ErrOutput, so they share the same underlying TextRec. this reduces data segment usage on small systems by more than 1K.
git-svn-id: trunk@38196 -
2018-02-10 22:45:51 +00:00
florian
980c689d37 + Peephole optimizer MovPush2Push
git-svn-id: trunk@38195 -
2018-02-10 22:20:04 +00:00
florian
961f7fd25b * msdos target uses already non 8.3 file names, so it makes no sense to get in trouble by using rtlconst instead of rtlconsts
git-svn-id: trunk@38194 -
2018-02-10 22:20:02 +00:00
florian
37c987c3ea * dependencies fixed
git-svn-id: trunk@38193 -
2018-02-10 22:20:00 +00:00
florian
08ebf36d00 * fix test for i8086
git-svn-id: trunk@38192 -
2018-02-10 22:19:59 +00:00
florian
09af451c2e * try to get rid at least of one mov when looking for les/lds optimization
+ debug messages

git-svn-id: trunk@38191 -
2018-02-10 22:19:57 +00:00
nickysn
3e63f6bbae + added test tasm18a.pp, which tests that 3-byte records don't set a valid
operand size in the intel asm syntax mode. In other words, this is not valid:
    test [di + a3byterecordtype], 1

git-svn-id: trunk@38190 -
2018-02-10 16:27:48 +00:00
marco
19b47e54bb * win32/64 stdio handles don't have fixed numbers, remove very old check
on handle <=4. Mantis #27221, by Anton Rzheshevski

git-svn-id: trunk@38189 -
2018-02-10 13:53:20 +00:00
nickysn
d5845a2d2a * updated test tasm18.pp, so it is now runnable and checks the generated code
git-svn-id: trunk@38188 -
2018-02-10 12:34:03 +00:00
Mattias Gaertner
84d93e50a2 pastojs: write procedure declaration
git-svn-id: trunk@38187 -
2018-02-10 12:08:56 +00:00
Mattias Gaertner
c8fe0d342f fpdoc: cleaned up obsolete okspecialize code
git-svn-id: trunk@38186 -
2018-02-10 11:34:49 +00:00
Mattias Gaertner
014a654955 pastojs: write property
git-svn-id: trunk@38185 -
2018-02-10 11:18:25 +00:00
Mattias Gaertner
2556ea5161 fcl-passrc: fixed indentation
git-svn-id: trunk@38184 -
2018-02-10 11:18:00 +00:00
Mattias Gaertner
715295edd6 fcl-passrc: removed not used okSpecialize
git-svn-id: trunk@38183 -
2018-02-10 09:54:28 +00:00
Mattias Gaertner
99e99e17f0 pastojs: write expression
git-svn-id: trunk@38182 -
2018-02-10 09:52:19 +00:00
Mattias Gaertner
4c2f2908fb fcl-passrc: comments
git-svn-id: trunk@38181 -
2018-02-10 09:51:52 +00:00
michael
3cc93fde2c * Add empty virtual constructor to TRouteObject
git-svn-id: trunk@38180 -
2018-02-10 07:31:31 +00:00
michael
92321c06e8 * Changed default debug server exe (bug ID 33140)
git-svn-id: trunk@38179 -
2018-02-10 00:02:05 +00:00
michael
431f44ccb0 * Make debugserver configurable
git-svn-id: trunk@38178 -
2018-02-10 00:00:02 +00:00
nickysn
cbf01fc284 + added test tasm18.pp, which tests instructions with an operand size set
implicitly by a recordtype.recordfield or recordtype constant; test is
  i8086-only and NORUN for now, but will be updated later, to actually test the
  generated code as well (and more tests will be added for i386 and x86_64 as
  well)

git-svn-id: trunk@38177 -
2018-02-09 17:54:47 +00:00
nickysn
f0765421eb + also set the operand size in constants like recordtype (without addressing a
record field). This makes e.g.
    test [di + recordtype], 1
  work and use the size of recordtype to determine the operand size; recordtype
  itself is evaluated to 0, so if recordtype's size is 2 bytes, the above
  instruction assembles as:
    test word ptr [di], 1
  Ugly, but TP7 compatible.

git-svn-id: trunk@38176 -
2018-02-09 17:43:31 +00:00
nickysn
7338437dcd * allow recordtype.recordfield constants to set the operand size; this makes things like
test [di + recordtype.recordfield], 1
  work, as long as the size of recordfield is a valid operand size for the target

git-svn-id: trunk@38175 -
2018-02-09 17:36:54 +00:00
nickysn
f829f70186 * use the 'size' return value of BuildConstSymbolExpression to set the operand size
git-svn-id: trunk@38174 -
2018-02-09 17:22:39 +00:00
nickysn
384715be8d + add an extra output parameter 'size' to tx86intreader.BuildConstSymbolExpression,
which allows const symbol expressions to also have a size sometimes. Why?
  Because TP7 (and perhaps Delphi) allows not specifying the size in e.g.
    test [di+recordtype.recordfield], 1
  in this case, the operand size (byte ptr, word ptr, dword ptr, qword ptr) is
  determined by the size of recordtype.recordfield; this already happens with
  variables, but in this case, this is a type.field, which is resolved to a
  constant.
  This commit only adds a dummy 'size' parameter, which is always initialized to
  0 and not used. The actual implementation of the above will follow in separate
  commits.

git-svn-id: trunk@38173 -
2018-02-09 16:52:12 +00:00
nickysn
4b339fd133 * convert the 'var' parameters of tx86intreader.BuildConstSymbolExpression to 'out'
git-svn-id: trunk@38172 -
2018-02-09 16:20:34 +00:00
nickysn
84611d716b * convert the 'var' parameters of tx86intreader.BuildRecordOffsetSize to 'out'
git-svn-id: trunk@38171 -
2018-02-09 16:15:40 +00:00
nickysn
b49c09b84c * convert the 'var' parameters of RAUtils.AsmSearchSym to 'out'
git-svn-id: trunk@38170 -
2018-02-09 15:59:18 +00:00
nickysn
4d0d143501 * converted the 'size' parameter to RAUtils.SearchType to 'out' instead of 'var'
git-svn-id: trunk@38169 -
2018-02-09 15:51:35 +00:00
nickysn
85c0b3854d * converted the 'var' parameters of RAUtils.GetRecordOffsetSize to 'out',
because they are output only

git-svn-id: trunk@38168 -
2018-02-09 15:49:00 +00:00
nickysn
391f85f828 + for TP7 compatibility, allow the '&', '$' and '?' characters in the x86 intel
syntax inline asm reader

git-svn-id: trunk@38167 -
2018-02-08 16:54:33 +00:00
nickysn
1709fa61a4 + extended test tasm17.pp with 'dw offset @jumptarget', 'dd @jumptarget' and
'dd offset @jumptarget'

git-svn-id: trunk@38166 -
2018-02-08 16:13:27 +00:00
nickysn
dd04114af9 + extended test tasm17.pp with 'DW @jumptarget'
git-svn-id: trunk@38165 -
2018-02-08 15:46:53 +00:00
nickysn
d65fb1907a + extended test tasm17.pp with 'DW/DD const+offset x'; unfortunately, TP7 also
supports 'DW/DD offset const+x', which we don't and I don't know whether we
  should

git-svn-id: trunk@38164 -
2018-02-08 15:41:03 +00:00
Mattias Gaertner
16e51bb58e pastojs: 0.9.4
git-svn-id: trunk@38163 -
2018-02-08 11:28:59 +00:00
Mattias Gaertner
740d141c2e fcl-passrc: resolver: nicer illegal qualifier error messages
git-svn-id: trunk@38162 -
2018-02-08 11:22:18 +00:00
pierre
ed695624ab Add clang as assembler for powerpc-darwin (powerpc64 is apparently not yet supported for MachO format)
git-svn-id: trunk@38161 -
2018-02-08 09:38:16 +00:00
Mattias Gaertner
948d12ea73 pastojs: read/write primitive number
git-svn-id: trunk@38160 -
2018-02-08 07:02:13 +00:00
Mattias Gaertner
9fb9939464 fcl-passrc: resolver: TPasIdentifierScope.GetLocalIdentifiers
git-svn-id: trunk@38159 -
2018-02-08 07:01:45 +00:00
pierre
33188fb5ba Add CROSSGDB macro for cross-cpu IDEs
git-svn-id: trunk@38158 -
2018-02-07 22:29:24 +00:00
pierre
1ff69ee0fa Fix compilation with SUPPORT_REMOTE macro defined
git-svn-id: trunk@38157 -
2018-02-07 22:28:39 +00:00
nickysn
b2d71f6f66 * fix test tasm17.pp for the i8086 huge memory model
git-svn-id: trunk@38156 -
2018-02-07 16:35:24 +00:00