doc: add sample Mie IR for Person.im
This commit is contained in:
@@ -1,39 +1,146 @@
|
||||
record package_scope = "net.doorstuck.test"
|
||||
record package_scope = str "net.doorstuck.test"
|
||||
|
||||
record import = { "std.io" }
|
||||
record import = { str "std.io" }
|
||||
|
||||
define void @L0001(id %0) lambda {
|
||||
data @cout = external global id
|
||||
data @StringBuffer = external global id
|
||||
|
||||
data @.str.0 = str "Received "
|
||||
data @.str.1 = str ", "
|
||||
|
||||
data @.atom.0 = atom "years"
|
||||
data @.atom.1 = atom "months"
|
||||
data @.atom.2 = atom "days"
|
||||
|
||||
type @_ZN3net9doorstuck4testC6PersonE = class {
|
||||
id @name,
|
||||
id @age,
|
||||
id @val
|
||||
}
|
||||
|
||||
define void @_ZN3net9doorstuck4testC6PersonM4init4name3ageE(id %self, id %0) instance {
|
||||
%entry:
|
||||
%1 = getelementptr class @_ZN3net9doorstuck4testC6PersonE, id %self, i32 #0
|
||||
store id %0, ptr %1
|
||||
|
||||
%2 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
store id %1, ptr %2
|
||||
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @_ZN3net9doorstuck4testC6PersonM4test5param0E(id %0, id %1) instance {
|
||||
%entry:
|
||||
%2 = load id, ptr @cout
|
||||
|
||||
; %4 = StringBuilder new
|
||||
%3 = load id, ptr @StringBuilder
|
||||
%4 = msg id %3, @_M3newE()
|
||||
|
||||
; (void) tempstr append:'Received '
|
||||
%5 = load id, ptr @.str.0
|
||||
msg void, id %3, @_M06appendE(id %5)
|
||||
|
||||
; (void) tempstr append:data (param 0)
|
||||
msg void, id %3, @_M06appendE(id %0)
|
||||
|
||||
; (void) tempstr append:', '
|
||||
%6 = load id, ptr @.str.1
|
||||
msg void, id %3, @_M06appendE(id %6)
|
||||
|
||||
; (void) tempstr append:extra (param 1)
|
||||
msg void, id %3, @_M06appendE(id %1)
|
||||
|
||||
; %7 = tempstr toString
|
||||
%7 = msg id, id %3, @_M8toStringE()
|
||||
|
||||
; cout put:'Received {data}, {extra}'
|
||||
msg void, id %2, @_M03put(id %7)
|
||||
|
||||
ret void
|
||||
}
|
||||
|
||||
define id @_ZN3net9doorstuck4testC6PersonM4nameE(id %self) instance {
|
||||
%entry:
|
||||
%0 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #0
|
||||
%1 = load id, ptr %0
|
||||
ret id %1
|
||||
}
|
||||
|
||||
define id @_ZN3net9doorstuck4testC6PersonM3ageE(id %self) instance {
|
||||
%entry:
|
||||
%0 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
%1 = load id, ptr %0
|
||||
ret id %1
|
||||
}
|
||||
|
||||
define id @_ZN3net9doorstuck4testC6PersonM11ageInMonthsE(id %self, id %0) instance {
|
||||
%entry:
|
||||
%1 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
%2 = load id, ptr %1
|
||||
ret id %1
|
||||
}
|
||||
|
||||
define void @_ZN3net9doorstuck4testC6PersonM07setNameE(id %self, id %1) instance {
|
||||
%entry:
|
||||
%2 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
store id %1, ptr %2
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @_ZN3net9doorstuck4testC6PersonM06setAge6inUnitE(id %self, i32 %1, id %2) instance {
|
||||
%entry:
|
||||
%3 = load atom, ptr @.atom.0
|
||||
%4 = load atom, ptr @.atom.1
|
||||
%5 = load atom, ptr @.atom.2
|
||||
|
||||
switch id %2, label %default [
|
||||
atom %3, label %years
|
||||
atom %4, label %months
|
||||
atom %5, label %days
|
||||
]
|
||||
|
||||
%years:
|
||||
%6 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
store i32 %2, ptr %6
|
||||
br label %end
|
||||
|
||||
%months:
|
||||
%7 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
%8 = div i32 %2, #12
|
||||
store i32 %8, ptr %7
|
||||
br label %end
|
||||
|
||||
%days:
|
||||
%9 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
%10 = div i32 %2, #365
|
||||
store i32 %10, ptr %9
|
||||
br label %end
|
||||
|
||||
%default:
|
||||
%11 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #1
|
||||
store i32 #0, ptr %11
|
||||
br label %end
|
||||
|
||||
%end:
|
||||
ret void
|
||||
}
|
||||
|
||||
define id @_ZN3net9doorstuck4testC6PersonM012getAgeInUnitE(id %0, id %1) instance {
|
||||
%entry:
|
||||
|
||||
}
|
||||
|
||||
define void @Person::@_M4init4name3ageE(id %0, id %1) instance {
|
||||
|
||||
define id @_ZN3net9doorstuck4testC6PersonP15examplePropertyG(id %self) instance {
|
||||
%entry:
|
||||
%0 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #2
|
||||
%1 = load id, ptr %0
|
||||
ret id %1
|
||||
}
|
||||
|
||||
define void @Person::@_M4test5param0E(id %0, id %1) instance {
|
||||
|
||||
}
|
||||
|
||||
define id @Person::@_M4nameE(id %0, id %1) instance {
|
||||
|
||||
}
|
||||
|
||||
define id @Person::@_M3ageE(id %0, id %1) instance {
|
||||
|
||||
}
|
||||
|
||||
define id @Person::@_M11ageInMonthsE(id %0, id %1) instance {
|
||||
|
||||
}
|
||||
|
||||
define void @Person::@_M07setNameE(id %0, id %1) instance {
|
||||
|
||||
}
|
||||
|
||||
define void @Person::@_M06setAge6inUnitE(id %0, id %1) instance {
|
||||
|
||||
}
|
||||
|
||||
define id @Person::@_M012getAgeInUnitE(id %0, id %1) instance {
|
||||
|
||||
define void @_ZN3net9doorstuck4testC6PersonP15examplePropertyS(id %self, id %0) instance {
|
||||
%entry:
|
||||
%1 = getelementptr class @_ZN33net9doorstuck4testC6PersonE, id %self, i32 #2
|
||||
store id %0, ptr %1
|
||||
ret void
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user