I suppose I really want to know if CPU has certain features or not, rather than the exact model (i.e. does it have 68020 addressing modes), and don't want to rely on OS patches or even OS versions. Maybe something like the following would work?
Code:
moveq #2,D0
move.w data(PC,D0*2),D0
...
data:
dc.w 0, 0, $ff
If CPU doesn't support scaled indexing, it won't throw an exception, it will just reference the "wrong" address.