pierre
e835f120e9
Fix fpc_frac_real, fpc_trunk_real and fpc_int_real by removing the assumption that SP=BP at entry
...
git-svn-id: trunk@32865 -
2016-01-06 15:20:57 +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
11eb1a4179
+ added some i8086 memory model specific defines in strings.inc and
...
stringss.inc, used by the assembler routines (they are already defined in
the system unit, but these includes are included in units, other than system)
git-svn-id: trunk@31922 -
2015-10-03 09:30:57 +00:00
nickysn
8cfc0d8881
* fixed i8086 strpcopy after r31915
...
git-svn-id: trunk@31921 -
2015-10-03 01:18:25 +00:00
nickysn
7fb2418287
+ added an i8086 asm optimized strpcopy routine
...
git-svn-id: trunk@31915 -
2015-10-02 16:42:25 +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
nickysn
024ebb287e
+ implemented set_jmp and long_jmp on win16 via the Catch and Throw winapi
...
functions, which provide the same functionality, but are safe to use in all
windows modes (e.g. they include the magic for handling jumps to discarded
or moved code segments in real mode)
git-svn-id: trunk@31579 -
2015-09-08 16:03:50 +00:00
nickysn
3497359a9f
+ added missing i8086 system unit includes hugeptr.inc, int32p.inc and
...
int64p.inc to rtl/i8086/makefile.cpu
git-svn-id: trunk@30133 -
2015-03-08 01:39:40 +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
13646c7afe
+ added rtl helper for huge pointer subtraction
...
git-svn-id: trunk@28178 -
2014-07-06 19:15:14 +00:00
nickysn
c306f48c14
+ added rtl helpers for huge pointer comparisons
...
git-svn-id: trunk@28148 -
2014-07-04 08:34:17 +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
sergei
217bac7a0b
- Removed fpc_pi_real compilerproc, it is no longer used. At least two releases (2.6.2 and 2.6.4) emit Pi directly as a constant.
...
git-svn-id: trunk@27500 -
2014-04-07 09:16:24 +00:00
nickysn
c0cb3643f8
+ support i8086 far data memory models in fpc_longJmp
...
git-svn-id: trunk@27413 -
2014-03-31 15:53:12 +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
1f98dfc3b4
* i8086 far data memory model fixes in FPC_SETJMP. FPC_LONGJUMP not converted
...
yet.
git-svn-id: trunk@27368 -
2014-03-30 10:56:42 +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
nickysn
47aed8b01f
* optimized the i8086 version of Get8087CW
...
git-svn-id: trunk@27221 -
2014-03-21 13:46: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
sergei
0255eb880e
- Removed mathuh.inc files which are identical for all targets (except m68k, see below), their contents moved into math.pp.
...
+ m68k/mathu.inc: added stub implementations for missing functions.
git-svn-id: trunk@27180 -
2014-03-18 20:01:15 +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
41d28f91e5
- rm asmmode intel from the i8086-msdos rtl, as that is the default asm mode on
...
that platform
git-svn-id: trunk@27144 -
2014-03-15 13:01:05 +00:00
nickysn
015c7e951a
* Changed the default packset setting to 1 and disabled the padding of 3-byte
...
sets to 4 bytes on 16 and 8-bit CPUs. This is compatible with Turbo Pascal 7
and Delphi 1.
git-svn-id: trunk@27140 -
2014-03-14 23:51:14 +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
nickysn
a85bb98aa6
* patch from Max Nazhalov with improvements to the i8086 64-bit division:
...
since [unnormalized] n >= 0x10000 now, we have
1. lzv<=47, so all code that makes shifts by >= 48 is dead;
2. q3=0, so main loop can be executed just 3 times instead of 4.
git-svn-id: trunk@26535 -
2014-01-20 21:39:05 +00:00
nickysn
b91509159a
+ added asm optimized 64-bit division helpers for i8086 by Max Nazhalov
...
git-svn-id: trunk@26520 -
2014-01-19 20:26:24 +00:00