diff options
author | Alan Modra <amodra@bigpond.net.au> | 2002-09-24 01:46:42 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2002-09-24 01:46:42 +0000 |
commit | 7e8a1443d0d531b2c1580d0058b6b359ffd3aec3 (patch) | |
tree | 75d4619e96d914e13968e72dea13faad6614be62 /gas | |
parent | 3d20aa718c85778d400527e000eba133bd998284 (diff) | |
download | binutils-redhat-7e8a1443d0d531b2c1580d0058b6b359ffd3aec3.tar.gz |
* config/tc-i386.c (process_operands): Warn about "lea" segment
overrides.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 19 |
2 files changed, 15 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 97dd2cde9d..eaef1392d3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-09-24 Alan Modra <amodra@bigpond.net.au> + + * config/tc-i386.c (process_operands): Warn about "lea" segment + overrides. + 2002-09-22 Mark Elbrecht <snowball3@softhome.net> * write.c: Delete set_segment_vma and prototype. Update all callers. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index c46b65b5a9..4db65b8349 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2604,9 +2604,8 @@ process_operands () else if (i.tm.opcode_modifier & Modrm) { /* The opcode is completed (modulo i.tm.extension_opcode which - must be put into the modrm byte). - Now, we make the modrm & index base bytes based on all the - info we've collected. */ + must be put into the modrm byte). Now, we make the modrm and + index base bytes based on all the info we've collected. */ default_seg = build_modrm_byte (); } @@ -2633,12 +2632,14 @@ process_operands () default_seg = &ds; } - /* If a segment was explicitly specified, - and the specified segment is not the default, - use an opcode prefix to select it. - If we never figured out what the default segment is, - then default_seg will be zero at this point, - and the specified segment prefix will always be used. */ + if (i.tm.base_opcode == 0x8d /* lea */ && i.seg[0] && !quiet_warnings) + as_warn (_("segment override on `lea' is ineffectual")); + + /* If a segment was explicitly specified, and the specified segment + is not the default, use an opcode prefix to select it. If we + never figured out what the default segment is, then default_seg + will be zero at this point, and the specified segment prefix will + always be used. */ if ((i.seg[0]) && (i.seg[0] != default_seg)) { if (!add_prefix (i.seg[0]->seg_prefix)) |