Closed trevorcarlson closed 1 year ago
What is the format of tighten, exactly? How many inputs and outputs? I suspect, instead of a new RI type, we can use a register location to store the value that could be used as this immediate, no?
Previously we were actually using registers everywhere, but now thinking that we commonly know what field we want to retrieve (for LCC) or permissions to set (for tighten) statically, we want to use an immediate because it can save a register and a corresponding load immediate instruction. The range of the immediate is also too small to justify the use a register for this.
Perhaps we can split LCC and call them I-type with fixed immediate field.
For tighten, I took a look at CHERI. They are actually using a separate register for holding the permission. But still, I doubt this is the right thing to do.
The issue here is that it will be difficult enough to get a new standard in, like Capstone, apart from new instruction changes. We don’t need extra changes to the instruction set to make it more difficult. To streamline the process, we’d want to minimize changes. Might this be less efficient — maybe. But, will the performance overhead be significant — I suspect not. In the future, optimizing Capstone might allow for new instructions if we show that this can be a significant benefit.
What is the format of tighten, exactly? How many inputs and outputs? I suspect, instead of a new RI type, we can use a register location to store the value that could be used as this immediate, no?