summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2002-09-24 01:46:42 +0000
committerAlan Modra <amodra@bigpond.net.au>2002-09-24 01:46:42 +0000
commit7e8a1443d0d531b2c1580d0058b6b359ffd3aec3 (patch)
tree75d4619e96d914e13968e72dea13faad6614be62 /gas
parent3d20aa718c85778d400527e000eba133bd998284 (diff)
downloadbinutils-redhat-7e8a1443d0d531b2c1580d0058b6b359ffd3aec3.tar.gz
* config/tc-i386.c (process_operands): Warn about "lea" segment
overrides.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c19
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))