mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-04 14:53:08 +00:00
Merge pull request #1306 from topos-protocol/fix_empty_last_chunk
This commit is contained in:
commit
b212fff72f
@ -57,6 +57,17 @@ memcpy_finish:
|
||||
// Similar logic to memcpy, but optimized for copying sequences of bytes.
|
||||
global memcpy_bytes:
|
||||
// stack: DST, SRC, count, retdest
|
||||
|
||||
// Handle empty case
|
||||
DUP7
|
||||
// stack: count, DST, SRC, count, retdest
|
||||
ISZERO
|
||||
// stack: count == 0, DST, SRC, count, retdest
|
||||
%jumpi(memcpy_bytes_empty)
|
||||
|
||||
// stack: DST, SRC, count, retdest
|
||||
|
||||
// Handle small case
|
||||
DUP7
|
||||
// stack: count, DST, SRC, count, retdest
|
||||
%lt_const(0x20)
|
||||
@ -119,6 +130,12 @@ memcpy_bytes_finish:
|
||||
// stack: retdest
|
||||
JUMP
|
||||
|
||||
memcpy_bytes_empty:
|
||||
// stack: DST, SRC, 0, retdest
|
||||
%pop7
|
||||
// stack: retdest
|
||||
JUMP
|
||||
|
||||
%macro memcpy_bytes
|
||||
%stack (dst: 3, src: 3, count) -> (dst, src, count, %%after)
|
||||
%jump(memcpy_bytes)
|
||||
|
||||
@ -2,12 +2,22 @@
|
||||
// DST = (dst_ctx, dst_segment, dst_addr).
|
||||
// This tuple definition is used for brevity in the stack comments below.
|
||||
global memset:
|
||||
// Handle empty case
|
||||
DUP7
|
||||
// stack: count, DST, count, retdest
|
||||
ISZERO
|
||||
// stack: count == 0, DST, count, retdest
|
||||
%jumpi(memset_bytes_empty)
|
||||
|
||||
// stack: DST, count, retdest
|
||||
|
||||
// Handle small case
|
||||
DUP4
|
||||
// stack: count, DST, count, retdest
|
||||
%lt_const(0x20)
|
||||
// stack: count < 32, DST, count, retdest
|
||||
%jumpi(memset_finish)
|
||||
|
||||
// stack: DST, count, retdest
|
||||
PUSH 32
|
||||
PUSH 0
|
||||
@ -43,3 +53,9 @@ memset_finish:
|
||||
%pop4
|
||||
// stack: retdest
|
||||
JUMP
|
||||
|
||||
memset_bytes_empty:
|
||||
// stack: DST, 0, retdest
|
||||
%pop4
|
||||
// stack: retdest
|
||||
JUMP
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user