From: anonymous c. <nas...@us...> - 2014-01-01 06:37:14
|
> To put things differently: what is the specific behavior you rely on, The code base I am faced with contains instances of both the "reg times 1" and "reg times 2" cases, each with both natural (e.g. [reg] or [reg+rex]) and explicit (e.g. [reg*1] or [reg*2]) uses. An explicit NOSPLIT qualifier is used when- ever a SIB encoding without a base register is desired. > what made you rely on that specific behavior, The "reg times 2" case worked since 0.96 (late 1997). The "reg times 1" case worked since 0.98.34 (mid 2002). > and how would this naturally appear in programmers' code? Via explicitly specified NOSPLIT qualifiers. >> [reg times 1] > > It has been undocumented all along, and looks nothing so much as an > unintentional consequence of Debbie, who implemented this, not wanting > to deal with distinguishing "reg*1" from "reg". So when you say > "intentional/expected behavior" I would argue it is very questionable on > both fronts. The feature request asked for -- and got -- a rather specific behavior: permit NOSPLIT not just for the "reg times 2" but also for the "reg times 1" case. The blame for not getting this 0.98.34 change documented should fall on me -- I should have spotted the lack of a doc change in Debbie's commit... but failed to do so. |