nickysn
a8f466c400
* updated the CSeg, DSeg and SSeg rtl functions on i8086 to use the new x86
...
intrinsics for reading the segment registers
git-svn-id: trunk@39434 -
2018-07-11 14:34:05 +00:00
nickysn
29f307589e
+ added an i8086-specific procedure MoveData, that allows moving of far data,
...
regardless of the memory model; procedure interface is the same as a similar
Turbo C (and DJGPP) function
git-svn-id: trunk@37741 -
2017-12-15 21:47:21 +00:00
nickysn
0119e7afb3
* changed the codepointer type in the i8086 small and compact memory models from
...
nearpointer to nearcspointer
git-svn-id: trunk@37730 -
2017-12-14 17:36:15 +00:00
nickysn
bc8c1ea1bc
* fixed get_caller_frame() for win16 (on that platform, bp is incremented by
...
one, before pushing, to indicate a far call, so it has to be aligned by 2
again, after reading)
git-svn-id: trunk@37657 -
2017-12-01 23:00:47 +00:00
pierre
277f1c1c2d
Check if FPC_SYSTEM_HAS_SYSINITFPU before parsing generic i8086 code
...
git-svn-id: trunk@36263 -
2017-05-19 21:49:13 +00:00
nickysn
ca46040728
+ added 16-bit versions of the InterLocked* functions for i8086
...
git-svn-id: trunk@35149 -
2016-12-18 00:17:10 +00:00
nickysn
c78f406d99
+ implemented proper stack checking for the i8086
...
git-svn-id: trunk@33787 -
2016-05-24 23:57:47 +00:00
nickysn
0f6b5161e6
* the 'count' parameter of Move and FillChar on i8086 made 16-bit unsigned,
...
instead of signed (BP7 compatibility)
git-svn-id: trunk@32443 -
2015-11-21 17:55:47 +00:00
nickysn
3d2919acae
+ added an i8086 asm optimized implementation of fpc_pchar_length
...
git-svn-id: trunk@32113 -
2015-10-21 13:21:04 +00:00
nickysn
3bd5934a51
* some micro optimizations for zero size blocks in CompareByte for i8086
...
git-svn-id: trunk@32041 -
2015-10-13 15:12:43 +00:00
nickysn
4fe125d779
* fixed ds corruption in CompareWord in far data memory models
...
git-svn-id: trunk@32040 -
2015-10-13 15:01:10 +00:00
nickysn
7ed7b090fe
+ i8086 asm optimized implementation of CompareDWord
...
git-svn-id: trunk@32039 -
2015-10-13 14:51:50 +00:00
nickysn
2152420e4f
+ added i8086 asm optimized version of CompareWord
...
git-svn-id: trunk@32037 -
2015-10-13 13:10:43 +00:00
nickysn
f107956169
+ added an i8086 asm optimized version of CompareByte()
...
git-svn-id: trunk@32026 -
2015-10-12 16:47:50 +00:00
nickysn
5e3a88b7f5
* replaced or cx,cx/jz with jcxz in IndexByte, IndexWord and IndexDWord for i8086
...
git-svn-id: trunk@31961 -
2015-10-06 14:55:51 +00:00
nickysn
3752047dd4
+ added an i8086 asm optimized IndexDWord routine
...
git-svn-id: trunk@31960 -
2015-10-06 14:52:58 +00:00
nickysn
792b7e67be
* treat the len parameter to the i8086 versions of IndexByte and IndexWord as
...
unsigned, like the other platforms do
git-svn-id: trunk@31954 -
2015-10-05 19:59:15 +00:00
nickysn
94a398896b
- removed spurious DX initialization at the end of IndexByte for i8086
...
git-svn-id: trunk@31950 -
2015-10-05 17:32:51 +00:00
nickysn
80b892aafb
+ added i8086 asm optimized IndexWord routine
...
git-svn-id: trunk@31948 -
2015-10-05 16:24:15 +00:00
nickysn
a4e216c7fd
+ added i8086 asm optimized IndexByte routine
...
git-svn-id: trunk@31947 -
2015-10-05 15:35:26 +00:00
nickysn
624376b403
+ handle properly win16 "odd bp" stack frames in get_caller_addr and get_caller_frame
...
git-svn-id: trunk@31829 -
2015-09-25 16:19:56 +00:00
sergei
9a72100405
- removed obsolete and commented out variable
...
git-svn-id: trunk@29320 -
2014-12-25 09:25:49 +00:00
nickysn
16c5849fc6
+ added HexStr() overload for huge pointers
...
git-svn-id: trunk@28180 -
2014-07-07 15:13:29 +00:00
nickysn
f0346c096f
+ added rtl helpers for huge pointer arithmetic
...
git-svn-id: trunk@28099 -
2014-06-28 17:08:40 +00:00
nickysn
ce4f9577d7
* seges prefix and lodsb instruction put on the same line for better readability
...
git-svn-id: trunk@28067 -
2014-06-25 21:07:25 +00:00
nickysn
2f83e2efc9
* use 'seges' instead of db 26h. It is actually supported, but for some reason,
...
unlike TP7's inline asm, in FPC it doesn't work on the same line as 'lodsb'.
git-svn-id: trunk@28065 -
2014-06-25 18:07:24 +00:00
nickysn
ec55340359
* i8086 far data memory model fixes in get_caller_addr and get_caller_frame
...
git-svn-id: trunk@28063 -
2014-06-25 16:47:56 +00:00
nickysn
ec75c5dfa0
+ added an asm implementation of FillDWord for i8086
...
git-svn-id: trunk@27650 -
2014-04-25 09:18:43 +00:00
nickysn
d24cfbcc8e
+ implemented InterLockedCompareExchange for i8086
...
git-svn-id: trunk@27410 -
2014-03-31 13:36:30 +00:00
nickysn
6cac29e1b5
+ implemented InterLockedExchangeAdd for i8086
...
git-svn-id: trunk@27406 -
2014-03-31 09:49:37 +00:00
nickysn
5b71ad3e3b
+ i8086 InterLockedExchange reimplemented in asm, added locking with cli
...
git-svn-id: trunk@27404 -
2014-03-31 09:24:23 +00:00
nickysn
3b2cc1baf5
- rm unused local vars from SysInitFPU and SysResetFPU
...
git-svn-id: trunk@27403 -
2014-03-30 23:03:51 +00:00
nickysn
8eaf8938f4
+ support i8086 far data memory models in InterLockedDecrement and
...
InterLockedIncrement
git-svn-id: trunk@27402 -
2014-03-30 22:49:40 +00:00
nickysn
14ecc118ec
+ disable interrupts as a form of 'locking' in InterLockedDecrement and
...
InterLockedIncrement
git-svn-id: trunk@27401 -
2014-03-30 22:41:48 +00:00
nickysn
2dd9a36bdc
* use si, instead of bp in InterLockedDecrement and InterLockedIncrement
...
git-svn-id: trunk@27400 -
2014-03-30 22:38:30 +00:00
nickysn
7f37a3300d
+ added an i8086 asm implementation of move()
...
git-svn-id: trunk@27374 -
2014-03-30 13:22:52 +00:00
nickysn
ab3b3ab169
+ i8086 far data memory model support in Sptr and get_frame
...
git-svn-id: trunk@27269 -
2014-03-24 17:10:38 +00:00
sergei
b89822d3e9
* i8086: added assembler implementation of fpc_round_real and removed remaining softfloat dependencies.
...
git-svn-id: trunk@27195 -
2014-03-20 02:28:47 +00:00
nickysn
a176c2d4f5
+ add overloaded versions of HexStr(pointer) for i8086 near and far pointers
...
- rm ifdefs for i8086 far code memory model when doing stack traces. The
compiler will now choose the correct overload of HexStr according to the
CodePointer type.
git-svn-id: trunk@27163 -
2014-03-16 17:40:31 +00:00
nickysn
4c27c42f35
+ added asm optimized BSF/BSR routines for i8086 by Max Nazhalov
...
git-svn-id: trunk@26593 -
2014-01-26 23:12:32 +00:00
pierre
a4e08f8611
Move int32p.inc inclusion to end of i8086.inc as it needs to be parsed before generic.inc
...
git-svn-id: trunk@26366 -
2014-01-03 11:42:53 +00:00
nickysn
d0a7522e1f
+ also init Default8087CW in DetectFPU
...
git-svn-id: trunk@26201 -
2013-12-08 22:39:48 +00:00
nickysn
180ddf2ddd
+ i8086 FPU detection code updated to also identify the FPU type (8087/287/387+)
...
and initialize the Test8087 global variable.
git-svn-id: trunk@26200 -
2013-12-08 20:50:52 +00:00
nickysn
f23794bf39
* get_caller_frame for i8086 optimized for size
...
git-svn-id: trunk@25860 -
2013-10-27 12:01:29 +00:00
nickysn
7489bfb56b
* fixed get_caller_addr returning the wrong segment in i8086 medium memory model
...
git-svn-id: trunk@25859 -
2013-10-27 11:36:45 +00:00
nickysn
85c8be531a
+ added an asm implementation of FillWord for i8086 as well
...
git-svn-id: trunk@25854 -
2013-10-26 16:52:57 +00:00
nickysn
2f88ae82b1
+ added an asm implementation of FillChar for i8086
...
git-svn-id: trunk@25849 -
2013-10-25 23:15:44 +00:00
nickysn
5abeb67bff
* the i8086 versions of InterLockedDecrement and InterLockedIncrement were
...
missing 'nostackframe'. Fixed.
git-svn-id: trunk@25813 -
2013-10-17 22:38:59 +00:00
nickysn
e0e4c04456
* the Ptr(sel,ofs) parameters changed from longint to word on i8086
...
git-svn-id: trunk@25811 -
2013-10-17 20:44:58 +00:00
nickysn
6596ba9036
* fixed the stack param offsets in Ptr, get_caller_addr and get_caller_frame after the stackframe elimination
...
git-svn-id: trunk@25802 -
2013-10-16 12:39:39 +00:00