On 08/09/2011 02:39 PM, Christoffer Dall wrote:
>> + >> +static u32 ls_instr[NUM_LS_INSTR][2] = { >> + {0x04700000, 0x0d700000}, /* LDRBT */ >> + {0x04300000, 0x0d700000}, /* LDRT */ >> + {0x04100000, 0x0c500000}, /* LDR */ >> + {0x04500000, 0x0c500000}, /* LDRB */ >> + {0x000000d0, 0x0e1000f0}, /* LDRD */ >> + {0x01900090, 0x0ff000f0}, /* LDREX */ >> + {0x001000b0, 0x0e1000f0}, /* LDRH */ >> + {0x001000d0, 0x0e1000f0}, /* LDRSB */ >> + {0x001000f0, 0x0e1000f0}, /* LDRSH */ >> + {0x04600000, 0x0d700000}, /* STRBT */ >> + {0x04200000, 0x0d700000}, /* STRT */ >> + {0x04000000, 0x0c500000}, /* STR */ >> + {0x04400000, 0x0c500000}, /* STRB */ >> + {0x000000f0, 0x0e1000f0}, /* STRD */ >> + {0x01800090, 0x0ff000f0}, /* STREX */ >> + {0x000000b0, 0x0e1000f0} /* STRH */ >> +}; >> + > > Okay, maybe not. But surely there's some clever arithmetic the cpu uses to decode this. Probably, but this is only used in the rare case when the virt. extensions doesn't support the fault information. I highly doubt that this is in any critical path for any sane guest OS, but surely one could write a VM that would run very slow. I would like not to spend time on this right now and perhaps get back to it when we have all sorts of other features in place. Or, what do you think?
It's the ordinary case of premature optimization that afflicts even the best of us. Best to keep it simple.
-- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html