aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2016-10-28 12:36:06 +0200
committerDrahflow <drahflow@gmx.de>2016-10-28 12:36:06 +0200
commitedfc4f803381e48415ec1aeda245dec6aff33fb9 (patch)
treecc592ad3f0e405e39f4c9ae9234c80d7e1487d49
parent5355612fe8c43cedb00f6877ae2a91be48543192 (diff)
Allow larger freeze
-rw-r--r--compiler/standardClient.ey11
-rw-r--r--elymas/lib/sys/so.ey11
2 files changed, 18 insertions, 4 deletions
diff --git a/compiler/standardClient.ey b/compiler/standardClient.ey
index 01e894f..3b7828f 100644
--- a/compiler/standardClient.ey
+++ b/compiler/standardClient.ey
@@ -1084,8 +1084,15 @@
section .dataOffset fileOffset sub str .alloc out .writeall
section .dataOffset section .dataSize add =fileOffset
- out .fd section .dataBase section .dataSize 0 0 0 WRITE sys .asm .syscall --
- section .dataSize neq { "write failed" die } rep
+ 2000000000 ==:BLOCKSIZE
+ 0 section .dataSize BLOCKSIZE div 1 add range { ==block
+ section .dataBase block BLOCKSIZE mul add ==dataBase
+ block section .dataSize BLOCKSIZE div eq
+ section .dataSize block BLOCKSIZE mul sub BLOCKSIZE ? ==dataSize
+
+ out .fd dataBase dataSize 0 0 0 WRITE sys .asm .syscall --
+ dataSize neq { "write failed" die } rep
+ } each
} each
out .close
diff --git a/elymas/lib/sys/so.ey b/elymas/lib/sys/so.ey
index 029d446..da8c00a 100644
--- a/elymas/lib/sys/so.ey
+++ b/elymas/lib/sys/so.ey
@@ -1150,8 +1150,15 @@
section .dataOffset fileOffset sub str .alloc out .writeall
section .dataOffset section .dataSize add =fileOffset
- out .fd section .dataBase section .dataSize 0 0 0 WRITE sys .asm .syscall --
- section .dataSize neq { "write failed" die } rep
+ 2000000000 ==:BLOCKSIZE
+ 0 section .dataSize BLOCKSIZE div 1 add range { ==block
+ section .dataBase block BLOCKSIZE mul add ==dataBase
+ block section .dataSize BLOCKSIZE div eq
+ section .dataSize block BLOCKSIZE mul sub BLOCKSIZE ? ==dataSize
+
+ out .fd dataBase dataSize 0 0 0 WRITE sys .asm .syscall --
+ dataSize neq { "write failed" die } rep
+ } each
} each
out .close