Commit Graph

77 Commits

Author SHA1 Message Date
yury
6878ffbf04 * In the TP mode for 16-bit CPUs uint8+uint8 is extended to sint16+sint16. This is TP compatible.
git-svn-id: trunk@46468 -
2020-08-17 09:25:45 +00:00
pierre
471cb73c5f Add {$goto on} if FPC macro is defined
git-svn-id: trunk@42186 -
2019-06-07 07:55:40 +00:00
nickysn
914426e703 * fixed an i8086 inline assembler bug, where 'call word ptr [label]' (an
indirect call) was assembled as 'call near label' (direct call) instead of
  'call near [label]' and 'call dword ptr [label]' was assembled as
  'call near label' instead of 'call far [label]'

git-svn-id: trunk@42176 -
2019-06-05 15:49:39 +00:00
pierre
841a166847 Add explicit {$hugecode off} for tests that need it
git-svn-id: trunk@39391 -
2018-07-05 20:58:13 +00:00
pierre
d9c8d478b2 Restrict test to i8086 cpu
git-svn-id: trunk@38693 -
2018-04-06 07:40:21 +00:00
nickysn
e1d0e7572e * i8086 TP7 compatibility fixes, related to obtaining procedure addresses:
o The @ and Addr() operators in TP or Delphi mode can now be applied to both
    near and far procedures and they always produce a CodePointer, regardless of
    the call model of the procedure.
  o Ofs() and Seg() can now also be applied to both near and far procedures.
  o The @ and Addr() operators in non-TP/Delphi modes, as well as the procedure
    name itself in TP/Delphi modes now can be applied to both near and far
    procedures and produce a near or a far procvar.

git-svn-id: trunk@38691 -
2018-04-05 15:09:12 +00:00
nickysn
d86e5d006c + added test for seg(x) and ofs(x) initialized typed constants in TP mode as well
+ added directive for using the FPC compiler mode in test tsegofs1.pp

git-svn-id: trunk@38135 -
2018-02-06 13:27:36 +00:00
nickysn
f351b6acc9 + added an i8086 test for typed constants, initialized with ofs(x) or seg(x)
git-svn-id: trunk@38122 -
2018-02-05 16:24:35 +00:00
nickysn
b571f48735 * fixed the return type of FarAddr(), so that it is assignment compatible to
typed far pointers as well

git-svn-id: trunk@37629 -
2017-11-27 19:42:36 +00:00
nickysn
78e0f6c68b + added an i8086-specific FarAddr() function, similar to Addr(), but always
returns a far pointer, regardless of the current memory model

git-svn-id: trunk@37628 -
2017-11-27 16:41:48 +00:00
nickysn
c464f7fa56 * fixed the SEG inline asm directive when used with 32-bit registers on the i8086 target
git-svn-id: trunk@37613 -
2017-11-22 15:04:30 +00:00
nickysn
3cbe377f40 + added 2 tests for absolute var access to a 2-dimensional array from within inline asm
git-svn-id: trunk@37562 -
2017-11-06 16:47:07 +00:00
nickysn
20f905db6c + added i8086-only tag to test tasmabs3.pp
git-svn-id: trunk@37561 -
2017-11-06 16:43:13 +00:00
nickysn
24d447716e * fixed support for access from inline asm to absolute vars, pointing to an
array element (previously, it would always point to the start of the array)

git-svn-id: trunk@37558 -
2017-11-06 16:06:34 +00:00
nickysn
d318ab086a * when handling absolute vars from within intel inline assembly, take the
absolute var size into account (not the type of the var it points to or no
  size at all, if it points to a fixed address)

git-svn-id: trunk@37525 -
2017-10-26 15:58:48 +00:00
nickysn
8a0d8f025b * fixed another i8086 inline asm 32-bit constant bug (e.g. in 'or eax, 80000001h')
git-svn-id: trunk@37521 -
2017-10-25 19:38:37 +00:00
nickysn
07eab50afe + added a test for 32-bit inline asm const operand on i8086, using at&t syntax as well
git-svn-id: trunk@37520 -
2017-10-25 18:09:11 +00:00
nickysn
325e66287c * fix for inline asm of instructions with 32-bit constant operands on i8086
git-svn-id: trunk@37519 -
2017-10-25 18:03:22 +00:00
pierre
16477c598d Fix huge memory model failure by adding nostackframe modifier needed to avoid DS reloading at proc entry
git-svn-id: trunk@34049 -
2016-07-02 15:12:18 +00:00
pierre
ef6a8009cf Add {$goto on} for FPC to avoid compile time error
git-svn-id: trunk@34048 -
2016-07-02 15:10:51 +00:00
pierre
dfeadf89e9 Modify test to take into account the specific prologue for Huge model
git-svn-id: trunk@34016 -
2016-06-24 15:13:37 +00:00
nickysn
759a4f8258 * don't try to build lnfodwrf on i8086-msdos, because it causes internal error
200309041 and thus breaks building i8086-msdos snapshots entirely. Added test
  that reproduces the bug in a small program, so it can be fixed eventually.

git-svn-id: trunk@33276 -
2016-03-18 19:56:37 +00:00
pierre
80a7b909e4 Add $goto on for FPC compilation to avoid compile time error
git-svn-id: trunk@32873 -
2016-01-07 17:12:13 +00:00
nickysn
a19c506b46 + added a very simple test for i8086-msdos for linking an external TASM
assembler .obj module. Note that TASM modules aren't fully supported yet,
  because our OMF internal linker doesn't support all features of the OMF object
  format. This test works, because it's really simple. As more OMF features are
  supported, this test will be extended.

git-svn-id: trunk@32353 -
2015-11-17 17:08:25 +00:00
nickysn
1e7a0838d7 + added test for the 'SEG @CODE' and 'SEG @DATA' i8086 inline assembler directives
git-svn-id: trunk@32284 -
2015-11-10 21:21:17 +00:00
nickysn
8c81e93a96 * replaced setintvec(x,@proc) in i8086 tests with the memory model independent version setintvec(x,ptr(seg(proc),ofs(proc)))
git-svn-id: trunk@32249 -
2015-11-05 14:18:55 +00:00
nickysn
500743c65d + extended test with many more reference syntaxes, accepted by TP7
git-svn-id: trunk@32190 -
2015-10-29 15:48:18 +00:00
nickysn
1eaa77d2f9 + added test for i8086 inline asm access to procedure data
git-svn-id: trunk@32186 -
2015-10-29 14:47:26 +00:00
nickysn
ce7672b750 + added test for local label data access from i8086 inline asm
git-svn-id: trunk@32178 -
2015-10-28 17:00:35 +00:00
nickysn
83d90c7888 + extended test with call/jmp [d]word ptr const, which produces an indirect call or jump under BP7
git-svn-id: trunk@32177 -
2015-10-28 15:22:33 +00:00
nickysn
a7a71f8b9f + extended test with many more variants, supported by BP7 for specifying an indirect call/jmp
git-svn-id: trunk@32176 -
2015-10-28 14:57:35 +00:00
nickysn
1fc1739c1d + added calls to local labels in a far procedure to the test as well
git-svn-id: trunk@32175 -
2015-10-28 14:33:32 +00:00
nickysn
85f4b8aa5e + added calls to labels to the tests
git-svn-id: trunk@32174 -
2015-10-28 13:59:35 +00:00
nickysn
fe3711bf6a + added interrupt procedures to the tests
git-svn-id: trunk@32173 -
2015-10-28 13:49:48 +00:00
nickysn
13441261f2 + extended tests with some additional ways to produce call relative near/absolute far in BP7's inline asm
git-svn-id: trunk@32172 -
2015-10-28 13:32:18 +00:00
nickysn
30718a2601 + added i8086 inline asm near relative and far absolute call tests (TP7
compatible, but not yet working under FPC, unfortunately)

git-svn-id: trunk@32164 -
2015-10-27 14:39:02 +00:00
nickysn
6b89ea1af2 + added an i8086 inline assembler test for the near and far ret instructions
git-svn-id: trunk@32158 -
2015-10-26 17:06:17 +00:00
nickysn
1491d9655c + fixed the emitting of non-nil far and huge pointer constptrs in typed
constants on i8086

git-svn-id: trunk@32141 -
2015-10-24 20:25:49 +00:00
nickysn
520f7226aa + added test for i8086 inline asm far and near indirect jmps as well
git-svn-id: trunk@32110 -
2015-10-21 01:26:15 +00:00
nickysn
2fbcdaf7d5 * fix typo
git-svn-id: trunk@32109 -
2015-10-21 01:22:23 +00:00
nickysn
bdf719c4df * updated comment to inform that 'call far reg' is not a valid x86 instruction
at all, and not just that we don't expect it

git-svn-id: trunk@32108 -
2015-10-21 01:19:23 +00:00
nickysn
c5aa64bc2c + added an i8086 inline asm test for the indirect near and far call instructions
git-svn-id: trunk@32107 -
2015-10-21 01:07:00 +00:00
nickysn
c279efc9a5 + added normalization and alignment test for HeapOrg and HeapEnd in the
taddint1.pp test

git-svn-id: trunk@28785 -
2014-10-07 14:02:47 +00:00
nickysn
2843194124 + added check for HeapOrg<=FreeList and HeapPtr<=HeapEnd in test ttheap1.pp
git-svn-id: trunk@28784 -
2014-10-07 13:30:34 +00:00
nickysn
445017fab4 + added a TP7 heap compatibility test
git-svn-id: trunk@28656 -
2014-09-14 12:01:09 +00:00
nickysn
d553e4572a + added checks for HeapOrg and HeapEnd to the i8086 compact and large memory
layout tests

git-svn-id: trunk@28469 -
2014-08-19 16:59:54 +00:00
nickysn
6770301fe7 + added a normalized huge pointer comparison test
git-svn-id: trunk@28215 -
2014-07-13 13:07:01 +00:00
nickysn
ba1ee49b64 + added non-normalized huge pointer comparison test
git-svn-id: trunk@28213 -
2014-07-13 12:39:24 +00:00
nickysn
8604372da3 + implemented far pointer comparison operating only on the offset (+ added test)
git-svn-id: trunk@28179 -
2014-07-06 22:45:19 +00:00
nickysn
18246bd9ed + added tests for >, <, >= and <= with equal pointers in the thugeptr2.pp and
thugeptr2a.pp tests

git-svn-id: trunk@28168 -
2014-07-05 15:52:14 +00:00