summaryrefslogtreecommitdiff
path: root/rtl/z80
diff options
context:
space:
mode:
authornickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-04-21 16:48:54 +0000
committernickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-04-21 16:48:54 +0000
commit80d824868785cf9a8808ac28741dd259d697f072 (patch)
tree37c58098c39054031302a0dba8ff3730007d2f5b /rtl/z80
parenta035a398ddb9ee89176d0f59895e24abac29b086 (diff)
downloadfpc-80d824868785cf9a8808ac28741dd259d697f072.tar.gz
* FillChar changed to a pure assembler procedure
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/z80@44965 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/z80')
-rw-r--r--rtl/z80/z80.inc46
1 files changed, 22 insertions, 24 deletions
diff --git a/rtl/z80/z80.inc b/rtl/z80/z80.inc
index 0d03c0da19..f1497417cc 100644
--- a/rtl/z80/z80.inc
+++ b/rtl/z80/z80.inc
@@ -56,34 +56,32 @@ end;
{$define FPC_SYSTEM_HAS_FILLCHAR}
-Procedure FillChar(var x;count:SizeInt;value:byte);
+Procedure FillChar(var x;count:SizeInt;value:byte);assembler;
label
skip, loop;
-begin
- asm
- ld c, (count)
- ld b, (count+1)
- bit 7, b
- jp NZ, skip
-
- ld a, b
- or a, c
- jp Z, skip
-
- ld e, (value)
- ld a, 0
- ld l, (x)
- ld h, (x+1)
+asm
+ ld c, (count)
+ ld b, (count+1)
+ bit 7, b
+ jp NZ, skip
+
+ ld a, b
+ or a, c
+ jp Z, skip
+
+ ld e, (value)
+ ld a, 0
+ ld l, (x)
+ ld h, (x+1)
loop:
- ld (hl), e
- inc hl
- dec bc
- cp a, c
- jp NZ, loop
- cp a, b
- jp NZ, loop
+ ld (hl), e
+ inc hl
+ dec bc
+ cp a, c
+ jp NZ, loop
+ cp a, b
+ jp NZ, loop
skip:
- end;
end;