move Cpy to %DEF mm

This commit is contained in:
dzaima 2024-02-04 23:31:29 +02:00
parent e89d59c606
commit 95c8957dcc

View File

@ -175,9 +175,9 @@
# pointer objects # pointer objects
%DEF mm %USE defs Alloc {1𝕩 {𝕏𝕨} @•FFI"*"𝕨, "calloc", size_t, size_t} free @•FFI"""free"">*" %DEF mm %USE defs Calloc {1𝕩 {𝕏𝕨} @•FFI"*"𝕨, "calloc", size_t, size_t} free @•FFI"""free"">*" cpy @•FFI"*:i8""memcpy""*""*""u64" CpyA +´(28×8)×256|Cpy
%DEF WallocE Cpy +´(28×8)×256|(@•FFI"*:i8""memcpy""*""*""u64"){𝔽} {%USE mm allocs Clean{Free¨allocs𝕩} Clean 𝕏{𝕊: !•CurrentError Clean @} {{r allocs r 𝕨 Alloc 𝕩}}} %DEF WallocE %USE mm {allocs Clean{Free¨allocs𝕩} Clean 𝕏{𝕊: !•CurrentError Clean @} {{r allocs r 𝕨 Calloc 𝕩}}}
%DEF Walloc Cpy +´(28×8)×256|(@•FFI"*:i8""memcpy""*""*""u64"){𝔽} {%USE mm allocs Clean{Free¨allocs𝕩} Clean 𝕏 {{r allocs r 𝕨 Alloc 𝕩}}} %DEF Walloc %USE mm {allocs Clean{Free¨allocs𝕩} Clean 𝕏 {{r allocs r 𝕨 Calloc 𝕩}}}
# .Field # .Field
%USE Walloc {{𝕊al: 1("{i32,i32,i32}" Al 99).Field0¨ ¯2+8}} %% 00111000 %USE Walloc {{𝕊al: 1("{i32,i32,i32}" Al 99).Field0¨ ¯2+8}} %% 00111000
@ -185,7 +185,7 @@
%USE Walloc {{𝕊al: 1("[5]u8" Al 99).Field0¨ ,¯∞,0÷0,@,"foo",{}}} %% 60 %USE Walloc {{𝕊al: 1("[5]u8" Al 99).Field0¨ ,¯∞,0÷0,@,"foo",{}}} %% 60
# .Write, .Read # .Write, .Read
%USE Walloc {{𝕊al: p"{i16,i16,i16,i64}" Al 99 p.Write ¯410000¯300007e12 s-{Cpy 0˜˜𝕩}´ p.Field 2, p Cpy p.Add 1, p, s p.Read¨ 2}} %% ¯410000¯300007e12, ¯41000000 %USE Walloc {{𝕊al: p"{i16,i16,i16,i64}" Al 99 p.Write ¯410000¯300007e12 s-{CpyA 0˜˜𝕩}´ p.Field 2, p Cpy p.Add 1, p, s p.Read¨ 2}} %% ¯410000¯300007e12, ¯41000000
%USE Walloc {{𝕊al: p"{i32,{i64,i64}}" Al 999 {𝕩 p.Write 𝕩×10,𝕩×2030}¨ 4 ((p.Field 1).Field 0).Read¨ 4 }} %% 20×4 %USE Walloc {{𝕊al: p"{i32,{i64,i64}}" Al 999 {𝕩 p.Write 𝕩×10,𝕩×2030}¨ 4 ((p.Field 1).Field 0).Read¨ 4 }} %% 20×4
!"Cannot get a field of a pointer to a scalar" % %USE WallocE {{𝕊al: ("i32" Al 99).Field 0}} !"Cannot get a field of a pointer to a scalar" % %USE WallocE {{𝕊al: ("i32" Al 99).Field 0}}