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
When ilt_create loads data from cache it assumes that the data is valid.
For mips64 the stable and unstable versions support a different number of instructions, so they produce different results.
Since the filename is the same, what stable generates is wrong for unstable and vice versa.
At minimum, ilt_create needs to validate that the number of instructions loaded from the cache matches what is requested.
A more general approach is to compute a hash over the instructions (mask+value) and either use it in the filename, or store it inside the file to compare after load, or both.
The hash should produce different results when an instruction is reordered, added, removed, or modified (mask+value).
Bug was found while trying to test and debug x86 jit code being converted to rust.
The text was updated successfully, but these errors were encountered:
When
ilt_create
loads data from cache it assumes that the data is valid.For mips64 the stable and unstable versions support a different number of instructions, so they produce different results.
Since the filename is the same, what stable generates is wrong for unstable and vice versa.
At minimum,
ilt_create
needs to validate that the number of instructions loaded from the cache matches what is requested.A more general approach is to compute a hash over the instructions (mask+value) and either use it in the filename, or store it inside the file to compare after load, or both.
The hash should produce different results when an instruction is reordered, added, removed, or modified (mask+value).
Bug was found while trying to test and debug x86 jit code being converted to rust.
The text was updated successfully, but these errors were encountered: