From 99cbcbaeb49a25f3eb27b9743cc307389102c16f Mon Sep 17 00:00:00 2001 From: Max Wash Date: Mon, 9 Dec 2024 20:38:36 +0000 Subject: [PATCH] doc: explicitly store all identifiers/selector in an assembly source file in the const pool --- doc/sample/Person.iasm | 114 +++++++++++++++++++++++------------------ 1 file changed, 63 insertions(+), 51 deletions(-) diff --git a/doc/sample/Person.iasm b/doc/sample/Person.iasm index 1af3fb5..000fa3b 100644 --- a/doc/sample/Person.iasm +++ b/doc/sample/Person.iasm @@ -1,34 +1,3 @@ -@use std.io - -@lambda [_.Person_exampleProperty_get] - ldr x0, [self, #2] - ret -@end - -@lambda [_.Person_exampleProperty_set] - ldr x0, [bp, #-1] - str x0, [self, #2] - - ret -@end - -@lambda [_.Person_exampleProperty3_get] - ldr x0, [self, #3] - ret -@end - -@lambda [_.Person_exampleProperty3_set] - ldr x0, [bp, #-1] - str x0, [self, #3] - - ret -@end - -@lambda [_.Person_exampleProperty4_get] - ldr x0, [self, #4] - ret -@end - @constpool #0: "Received " #1: ", " @@ -37,22 +6,65 @@ #4: @atom[years] #5: @atom[months] #6: @atom[days] + #7: @ident[_.Person_exampleProperty_get] + #8: @ident[_.Person_exampleProperty_set] + #9: @ident[_.Person_exampleProperty3_get] + #10: @ident[_.Person_exampleProperty3_set] + #11: @ident[_.Person_exampleProperty4_get] + #12: #42 + #13: @ident[#13] + #14: @selector[-init(name:age:)] + #15: @selector[-test(param:_:)] + #16: @selector[-name] + #17: @selector[-age] + #18: @selector[-ageInMonths] + #19: @selector[-setName:] + #20: @selector[-setAge:] + #21: @selector[-setAge:inUnits:] + #22: @selector[-getAgeInUnits:] + #23: @ident[std.io] + #24: @ident[exampleProperty] + #25: @ident[exampleProperty2] + #26: @ident[exampleProperty3] + #27: @ident[exampleProperty4] @end -@class [net.doorstuck.test.Person] - $ exampleProperty { - get:_.Person_exampleProperty_get - set:_.Person_exampleProperty_set - } +@import [package:#23] - $ exampleProperty2 {get:#42} +@lambda [ident:#7] + ldr x0, [self, #2] + ret +@end - $ exampleProperty3 { - get:_.Person_exampleProperty3_get - set:_.Person_exampleProperty3_set - } +@lambda [ident:#8] + ldr x0, [bp, #-1] + str x0, [self, #2] - $ exampleProperty4 {get:_.Person_exampleProperty4_get} + ret +@end + +@lambda [ident:#9] + ldr x0, [self, #3] + ret +@end + +@lambda [ident:#10] + ldr x0, [bp, #-1] + str x0, [self, #3] + + ret +@end + +@lambda [ident:#11] + ldr x0, [self, #4] + ret +@end + +@class [ident:#13] + @property[ident:#24 get:#7 set:#8] + @property[ident:#25 get:#12] + @property[ident:#26 set:#10] + @property[ident:#27 get:#11] #0: name #1: age @@ -61,7 +73,7 @@ #4: __exampleProperty4 @end -@msgh (net.doorstuck.test.Person) [-init(name:age:)] +@msgh [recipient:#13 selector:#14] ldr x0, [bp, #-1] str x0, [self, #0] @@ -71,7 +83,7 @@ ret.n @end -@msgh (net.doorstuck.test.Person) [-test(param:_:)] +@msgh [recipient:#13 selector:#15] ldr x0, [pool, #0] ldr x1, [bp, #-1] @@ -93,17 +105,17 @@ ret.n @end -@msgh (net.doorstuck.test.Person) [-name] +@msgh [recipient:#13 selector:#16] ldr x0, [self, #0] ret @end -@msgh (net.doorstuck.test.Person) [-age] +@msgh [recipient:#13 selector:#17] ldr x0, [self, #1] ret @end -@msgh (net.doorstuck.test.Person) [-ageInMonths] +@msgh [recipient:#13 selector:#18] ldr x0, [self, #1] ldr x1, #12 @@ -112,21 +124,21 @@ ret @end -@msgh (net.doorstuck.test.Person) [-setName:] +@msgh [recipient:#13 selector:#19] ldr x0, [bp, #-1] str x0, [self, #0] ret.n @end -@msgh (net.doorstuck.test.Person) [-setAge:] +@msgh [recipient:#13 selector:#20] ldr x0, [bp, #-1] str x0, [self, #1] ret.n @end -@msgh (net.doorstuck.test.Person) [-setAge:inUnits:] +@msgh [recipient:#13 selector:#21] ldr x0, [bp, #-1] ldr x1, [bp, #-2] @@ -163,7 +175,7 @@ L0004: ret.n @end -@msgh (net.doorstuck.test.Person) [-getAgeInUnits:] +@msgh [recipient:#13 selector:#22] ldr x1, [bp, #-1] ; x1 = units ldr x2, [pool, #4] ; x2 = #years