You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A problem - it is theoretically possible with Lazyboy at present to mutate the value of a register as it is being used in something, such as a loop.
I'm writing this on a whim and not testing it, so it could have mistakes, but the general idea is the same.
.a_loop ;; some code that modifies Asub1 ;; A-- jr nz, .a_loop
To prevent this we could track which registers are in use in a scope and prohibit mutable access to them. Alternatively, we could silently allow them to be mutated, but move the value they have into a free register or create a map-like structure. After the inner code is executed, we can then move the value back into them before it's needed again.
The text was updated successfully, but these errors were encountered:
I've been (slowly) learning about SSA and such, I'll come back to this soon, I just work full time now, so finding time is a little harder than it used to be.
A problem - it is theoretically possible with Lazyboy at present to mutate the value of a register as it is being used in something, such as a loop.
I'm writing this on a whim and not testing it, so it could have mistakes, but the general idea is the same.
To prevent this we could track which registers are in use in a scope and prohibit mutable access to them. Alternatively, we could silently allow them to be mutated, but move the value they have into a free register or create a map-like structure. After the inner code is executed, we can then move the value back into them before it's needed again.
The text was updated successfully, but these errors were encountered: