Commit Graph

2087 Commits

Author SHA1 Message Date
svenbarth
916ff0b92c + extend Concat() with support for dynamic arrays
+ added test

git-svn-id: trunk@37723 -
2017-12-12 19:54:08 +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
51489f9186 + added test for the StrUpper() and StrLower() functions in the strings unit
git-svn-id: trunk@37617 -
2017-11-24 15:59:20 +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
florian
0f637434a3 * disable test on avr
git-svn-id: trunk@37609 -
2017-11-19 18:05:22 +00:00
florian
3352311124 * disable test on avr as it works only with table driven init/final code
git-svn-id: trunk@37605 -
2017-11-19 18:05:16 +00:00
nickysn
ae92973196 + added support for the retw, retnw, retfw, retd, retnd, retfd, retq, retnq and
retfq x86 instructions. These are variants of the ret instruction with the
  return offset size set explicitly, e.g. retfw is a 16-bit far ret (i.e. pops
  a 16-bit offset and a 16-bit segment), retfd is a 32-bit far ret (pops a
  32-bit offset, followed by a 16-bit segment), etc.

git-svn-id: trunk@37571 -
2017-11-10 16:53:29 +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
d570c09b9d + added test, which tests public labels as well as 'external far' variables on i8086
git-svn-id: trunk@37533 -
2017-10-30 18:08:39 +00:00
nickysn
be3ff9128a + added an i8086 test for the public directive
git-svn-id: trunk@37531 -
2017-10-30 17:02:48 +00:00
nickysn
29558a74cd + support exporting labels from asm blocks in intel syntax asm blocks via the
'public' directive

git-svn-id: trunk@37530 -
2017-10-30 16:44:13 +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
nickysn
e58bad8eef + check for the 'pop cs' instruction in the x86 inline assembler and print a
warning (on the i8086 target) or an error (on i386 and x86_64) when this
  instruction is used (because it only works on 8086 and 8088 CPUs)

git-svn-id: trunk@37514 -
2017-10-24 15:07:20 +00:00
nickysn
e8bbc4eef9 + support the xlat x86 instruction syntax with a memory operand. This allows
specifying the address size (e.g. xlat byte ptr [bx] or xlat byte ptr [ebx])

git-svn-id: trunk@37478 -
2017-10-17 16:40:06 +00:00
nickysn
4a8aec26bf * fixed test tasm12c.pp (uses asmmode intel, not att)
git-svn-id: trunk@37457 -
2017-10-14 11:32:54 +00:00
nickysn
dd9b5eb2aa + added the 'Cannot override ES' message in the at&t assembler reader as well
git-svn-id: trunk@37456 -
2017-10-14 00:48:46 +00:00
nickysn
27978de111 + extended tests with segment overrides in at&t asm mode
git-svn-id: trunk@37455 -
2017-10-13 15:43:47 +00:00
nickysn
1ee36b5b9b + added error message in the intel assembler reader, when an attempt is made to
override the ES segment in an x86 string instruction (because it cannot be
  overriden)

git-svn-id: trunk@37454 -
2017-10-13 14:56:38 +00:00
nickysn
0fb79946a5 + added support for the parameterized versions of the x86 string instructions
(movs, cmps, scas, lods, stos, ins, outs) in the inline asm of the i8086, i386
  and x86_64 targets. Both intel and at&t syntax is supported.
* NEC V20/V30 instruction 'ins' (available only on the i8086 target, because it
  is incompatible with 386+ instructions) renamed 'nec_ins', to avoid conflict
  with the 186+ 'ins' instruction.

git-svn-id: trunk@37446 -
2017-10-12 00:07:02 +00:00
nickysn
8ba4de3885 + test lea with non-native address sizes (16-bit on i386, 32-bit on x86_64)
git-svn-id: trunk@37410 -
2017-10-06 15:46:03 +00:00
svenbarth
90bd408de4 * fix for Mantis #32355: adjust the meaning of the typehelpers modeswitch for Delphi modes in that it enables the "type helper" syntax as it is in the non-Delphi modes; extending primitive types with record helpers is now always enabled in Delphi modes
+ added test

git-svn-id: trunk@37225 -
2017-09-15 21:09:21 +00:00
florian
01b950f39b + new test
git-svn-id: trunk@37170 -
2017-09-10 18:07:15 +00:00
svenbarth
5c97248f85 + also write the set's size to the RTTI as that simplifies handling in Invoke()
git-svn-id: trunk@37090 -
2017-08-31 19:23:12 +00:00
svenbarth
ec7a17d1e3 * extend test for interface helper by tests for "inherited"
git-svn-id: trunk@37061 -
2017-08-25 19:37:44 +00:00
svenbarth
6acba684d4 * class helpers: fix calling virtual methods of the extended type using inherited
git-svn-id: trunk@37060 -
2017-08-25 19:36:56 +00:00
svenbarth
239d0704ca + add support for type helpers to also extend interface types
git-svn-id: trunk@37023 -
2017-08-21 20:49:20 +00:00
svenbarth
50f3479f64 + add test for the DynArray* functions (currently only DynArraySize() and DynArrayIndex() are tested)
git-svn-id: trunk@36943 -
2017-08-20 15:16:16 +00:00
svenbarth
b478ae031a - remove %NORUN flag (remnant of copy pasting the test)
git-svn-id: trunk@36940 -
2017-08-18 15:32:28 +00:00
svenbarth
324e63b5d3 * a bit of language consolidation: "type helper" can now be used for records and classes as well
git-svn-id: trunk@36938 -
2017-08-18 15:29:19 +00:00
svenbarth
d8ce141e2c * fix program name
git-svn-id: trunk@36935 -
2017-08-18 14:13:59 +00:00
svenbarth
677c35c083 * better fix for detecting Comp's type
git-svn-id: trunk@36879 -
2017-08-12 09:00:06 +00:00
svenbarth
ff927eb11a * fix test due to WideString = UnicodeString and Comp = Extended on some platforms
git-svn-id: trunk@36878 -
2017-08-12 08:56:10 +00:00
svenbarth
0b02dab684 + new Delphi-compatible intrinsic GetTypeKind() which returns the TTypeKind of a type as a constant value (and thus can be optimized away in If- and Case-statements)
+ added test

git-svn-id: trunk@36875 -
2017-08-11 22:12:53 +00:00
florian
567dfef9a7 + object files for sparc64-linux to test linking with gcc
git-svn-id: trunk@36655 -
2017-07-06 18:02:20 +00:00
Károly Balogh
4001435454 fixed typo in previous commit
git-svn-id: trunk@36614 -
2017-06-29 01:21:35 +00:00
Károly Balogh
a12111e1bd m68k: define safecall_is_cdecl on m68k too in tcalvar6 and tcalst6
git-svn-id: trunk@36613 -
2017-06-29 00:33:55 +00:00
Károly Balogh
50332a97bc textthr test to be more verbose on error conditions
git-svn-id: trunk@36584 -
2017-06-23 06:03:26 +00:00
Károly Balogh
8a6c995b75 troundm: fixed 32bit rmNearest tests and wrong result values
git-svn-id: trunk@36522 -
2017-06-18 18:49:32 +00:00
marcus
d4d7778e86 + Linux/m68k test object files
git-svn-id: trunk@36502 -
2017-06-14 20:33:26 +00:00
florian
f25c9c0956 * hopefully proper fix for 8 and 16 bit CPUs
git-svn-id: trunk@36473 -
2017-06-09 21:05:52 +00:00
florian
0fe5541459 --- Reverse-merging r36464 through r36463 into 'trnd1.pp':
U    trnd1.pp
--- Recording mergeinfo for reverse merge of r36464 through r36463 into 'trnd1.pp':
 G   trnd1.pp
--- Eliding mergeinfo from 'trnd1.pp':
 U   trnd1.pp

git-svn-id: trunk@36472 -
2017-06-09 20:59:46 +00:00
pierre
605e6defc7 Fix compilation due to syntax error in previous commit
git-svn-id: trunk@36464 -
2017-06-09 12:17:04 +00:00
pierre
8c370a4e6f Avoid Data element too large error for I8086 CPU
git-svn-id: trunk@36463 -
2017-06-09 06:11:54 +00:00
michael
f406d7cbef * Fix bug #31947: upgrade natve unicode implementation to version 9 and CLDR 30 (Patch from Inoussa)
git-svn-id: trunk@36407 -
2017-06-03 16:10:39 +00:00