On 2018-08-02, at 08:22:52, Alan Atkinson wrote: > "Inline data is no more expensive than data in another page. In either case, > the reference to the data requires a cache line load to the D-cache, but does > not invalidate/disturb the I-cache" > > Is that also now true for the target of an execute perchance? > Surely this is model-dependent. On S/360, I doubt it mattered.
> We went through a whole exercise to get rid of all the > > EX *+8 > J *+?? > <target of execute> > A principal use of EX is to be able to use a register mask to modify the target. CDC 3800 had a clever alternative to this, a modify-next-instruction instruction (I forget what it was called). The target was always the following instruction; execution continued after that instruction -- no need to branch around. Its principal use was to enable CDC 3800 extended addressing in old CDC 3600 short-address instructions. Addressing was not otherwise modal. IBM might have done well to provide a modify-next rather than a long-address, pipeline breaking, dreadfully expensive, EX. (They probably had the discussion and had good reasons not to do it.) (Can EX modify the CC mask in a target branch instruction? A sure branch prediction breaker.) -- gil