diff --git a/jumpforth.S b/jumpforth.S index bdabb8d..9c198f0 100644 --- a/jumpforth.S +++ b/jumpforth.S @@ -843,6 +843,30 @@ defcode FILL rep stosb NEXT +/* ( xu ... x1 n a-addr -- ) Store x1 through xn in ascending cells at a-addr */ +defcode NSTORE,"N!" + mov %esi,%edx + pop %edi + pop %ecx + mov %esp,%esi + lea (%esp,%ecx,4),%esp + rep movsd + mov %edx,%esi + NEXT + +/* ( n a-addr -- xu ... x1 ) Load x1 through xn from ascending cells at a-addr */ +defcode NFETCH,"N@" + mov %esi,%edx + pop %esi + pop %ecx + mov %ecx,%ebx + neg %ebx + lea (%esp,%ebx,4),%esp + mov %esp,%edi + rep movsd + mov %edx,%esi + NEXT + /* ( src dst n -- ) Block copy n bytes from src to dst (ascending addresses) */ defcode CMOVE mov %esi,%edx