[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/27763] New: x86-64 RIP-relative address with labels wraps aroun
From: |
andrey.vihrov at gmail dot com |
Subject: |
[Bug gas/27763] New: x86-64 RIP-relative address with labels wraps around signed 32-bit integer |
Date: |
Wed, 21 Apr 2021 18:12:19 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=27763
Bug ID: 27763
Summary: x86-64 RIP-relative address with labels wraps around
signed 32-bit integer
Product: binutils
Version: 2.36.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: andrey.vihrov at gmail dot com
Target Milestone: ---
Consider the following source:
movq test(%rip), %rax
.set test, . + 0xF0000000
When assembled and then disassembled with "objdump -d", this gives
0: 48 8b 05 00 00 00 f0 mov -0x10000000(%rip),%rax
The relative address wraps around and results in a negative displacement.
This affects expressions with labels, such as (test + 1) and (test -
0x1E0000000), but not simply 0xF0000000, which is correctly rejected with
Error: 0xf0000000 out range of signed 32bit displacement
Expressions not smaller than 2^32, such as (test + 0xF0000000), are also
correctly rejected:
Error: value of 8053063680 too large for field of 4 bytes at 3
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/27763] New: x86-64 RIP-relative address with labels wraps around signed 32-bit integer,
andrey.vihrov at gmail dot com <=