Commit Graph

52092 Commits

Author SHA1 Message Date
nickysn
4f498c9e3c * always enable portl (32-bit port access) in the i8086 ports unit
git-svn-id: trunk@37560 -
2017-11-06 16:32:36 +00:00
nickysn
0695381709 - removed the objpas dependency of unit ports under go32v2 as well
git-svn-id: trunk@37559 -
2017-11-06 16:19:54 +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
florian
a230826357 - remove obsolete comment after r37555
git-svn-id: trunk@37557 -
2017-11-05 22:04:06 +00:00
florian
4331904eb8 * made mode field of file recs word sized on 8 and 16 bit systems
git-svn-id: trunk@37556 -
2017-11-05 19:30:51 +00:00
florian
13df5b51db * objects support also default properties, so the ports unit does not depend on objpas anymore
git-svn-id: trunk@37555 -
2017-11-05 15:10:55 +00:00
florian
2140b586a6 * i386 building fixed
git-svn-id: trunk@37554 -
2017-11-04 19:42:08 +00:00
florian
1556599ad5 * symbols with bind type AB_EXTERNAL_INDIRECT need to be declared as EXTERN for masm/nasm etc.
git-svn-id: trunk@37553 -
2017-11-04 19:10:17 +00:00
florian
c36c4d838d + PostPeepHoleOptsCpu for i8086
git-svn-id: trunk@37552 -
2017-11-04 19:10:15 +00:00
florian
4da4b768ec * factored out PostPeepholeOptTest
+ use PostPeepholeOptTest on x86-64

git-svn-id: trunk@37551 -
2017-11-04 19:10:14 +00:00
florian
3097eaf8ee * made PostPeepholeOptMov a function
git-svn-id: trunk@37550 -
2017-11-04 19:10:12 +00:00
florian
a7ea7fb569 * factored out PostPeepholeOptCmp
+ use PostPeepholeOptCmp for x86_64

git-svn-id: trunk@37549 -
2017-11-04 19:10:09 +00:00
Mattias Gaertner
bc260d7284 pastojs: updated todos
git-svn-id: trunk@37548 -
2017-11-01 23:33:52 +00:00
Mattias Gaertner
399beb084b pasuseanalyzer: test for wpo resourcestring in other unit
git-svn-id: trunk@37547 -
2017-11-01 23:33:30 +00:00
florian
194c0c7073 * compilation fixed
git-svn-id: trunk@37546 -
2017-11-01 16:54:08 +00:00
florian
3a6f1fda78 * implemented _FPC_haltproc and Default_IRQ_handler in pascal, resolves issue #32633
git-svn-id: trunk@37545 -
2017-11-01 16:33:36 +00:00
florian
c7d5525b56 + implemented some AVR specific intrinsics
git-svn-id: trunk@37544 -
2017-11-01 16:33:34 +00:00
florian
4752b0ef96 + tinlinenode calls cpu specific routines for unknown inline numbers
git-svn-id: trunk@37543 -
2017-11-01 16:33:32 +00:00
florian
ff86c80176 * cpu specific header file for the system unit: cpuh.inc, moved several declarations into it
git-svn-id: trunk@37542 -
2017-11-01 16:33:30 +00:00
nickysn
e5dad9c98c + set oper.haslabelref in several other places, where a reference, containing a
label is created in the intel syntax x86 assembler. This fixes tfarcal3.pp and
  tfarcal4.pp after r37538

git-svn-id: trunk@37541 -
2017-11-01 14:31:16 +00:00
nickysn
9649154368 * fixed the token2str const array for intel syntax x86 asm
git-svn-id: trunk@37540 -
2017-11-01 13:36:16 +00:00
michael
aad1401272 * Fix usesanalyzer for resource strings
git-svn-id: trunk@37539 -
2017-11-01 10:00:05 +00:00
nickysn
9450beb99c * fixed bug in intel syntax i8086 inline asm, when certain 'jmp/call [v]'
instructions got erroneously converted to 'jmp/call v', if 'v' is an external
  far variable that points to certain things (like a local label, exported via
  public)

git-svn-id: trunk@37538 -
2017-10-31 16:49:38 +00:00
lacak
05cddddf7c fcl-db: mssql: in case of network failure infinite loop can occurs in Fetch method. Bug #32524
git-svn-id: trunk@37537 -
2017-10-31 08:45:50 +00:00
nickysn
49a96af874 + also support 'external near' var declarations on i8086
git-svn-id: trunk@37536 -
2017-10-30 21:52:03 +00:00
florian
5b766a1e67 * fixed CompareByte for x86-64 after r37528
git-svn-id: trunk@37535 -
2017-10-30 21:01:59 +00:00
florian
3bcf774c7b * compilation fixed
git-svn-id: trunk@37534 -
2017-10-30 21:01:10 +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
303309b28f + added support for 'external far' variables for i8086
git-svn-id: trunk@37532 -
2017-10-30 18:03:44 +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
florian
0c7306e1cd * improved CompareByte for x86-64 based on a patch by Markus Beth
git-svn-id: trunk@37528 -
2017-10-29 22:15:31 +00:00
yury
13957d32b8 * Fixed packages building for mipsel-android. socketcall is used only for i386 CPU.
git-svn-id: trunk@37527 -
2017-10-29 12:46:02 +00:00
Mattias Gaertner
5116deddc9 fcl-passrc: resolver: implicit calls in arguments of built-in procs
git-svn-id: trunk@37526 -
2017-10-29 10:38:57 +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
lacak
eef6e65730 fcl-db: memds: for ftLargeInt fields use AsLargeInt when copying
git-svn-id: trunk@37524 -
2017-10-26 13:00:50 +00:00
lacak
555528d145 fcl-db: memds: when copying data from source dataset to destination honor NULL values. Bug #32537
git-svn-id: trunk@37523 -
2017-10-26 12:53:25 +00:00
lacak
5c98c93500 fcl-db: tests: memds: check if null values are copied correctly. Bug #32537
git-svn-id: trunk@37522 -
2017-10-26 11:37:25 +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
2af5c9d508 * changed type used for section alignment from byte/shortint to longint, so the
internal object writer and the internal linker support object files with
  sections with alignment >=256

git-svn-id: trunk@37518 -
2017-10-25 15:47:29 +00:00
nickysn
8cc230ef1a - don't switch index into base in the gas assembly writer. This optimization
(and others) are performed in optimize_ref().

git-svn-id: trunk@37517 -
2017-10-25 13:42:18 +00:00
nickysn
d7e4b50068 + also optimize x86_64 references by switching [rbp+reg64] to [reg64+rbp],
[r13+reg64] to [reg64+r13] and [r13d+reg32] to [reg32+r13d]

git-svn-id: trunk@37516 -
2017-10-24 16:18:43 +00:00
nickysn
5ae32a0ec5 + always do the x86_64 reference optimizations as if SS=DS, because the CPU
basically ignores these segments in long mode

git-svn-id: trunk@37515 -
2017-10-24 15:38:59 +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
marco
fb57fd7324 * patch from Mattias fixing save/restore ancestorpos in twriter. Mantis #32607
git-svn-id: trunk@37513 -
2017-10-24 13:23:26 +00:00
nickysn
0d1f7910d7 + also apply optimize_ref() on references of inline asm instructions
git-svn-id: trunk@37512 -
2017-10-23 22:28:08 +00:00
nickysn
875339993f * strip segment overrides, for segments, which should be equal in the current
model to the default segment of the reference in optimize_ref, when
  inlineasm=false

git-svn-id: trunk@37511 -
2017-10-23 15:51:33 +00:00
nickysn
d220d6f2c6 * use get_default_segment_of_ref() in the seg() handling on i8086
git-svn-id: trunk@37510 -
2017-10-23 14:55:52 +00:00