diff options
author | Jani Nikula <jani.nikula@intel.com> | 2017-10-18 12:37:31 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2017-10-18 12:37:31 +0300 |
commit | 526b96c4f8dceb0104e267c61e5a3b22c538570c (patch) | |
tree | 8825258c4f678f5ad9fddc0afaf72d640458481a /tools/objtool/arch/x86/decode.c | |
parent | cb8d50dfb341e9615c8d203a3e6513dae9ff901d (diff) | |
parent | 40d86701a625eed9e644281b9af228d6a52d8ed9 (diff) |
Merge drm-upstream/drm-next into drm-intel-next-queued
Needed for timer_setup() and drm_dev_{get,put}() conversions in i915.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'tools/objtool/arch/x86/decode.c')
-rw-r--r-- | tools/objtool/arch/x86/decode.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/objtool/arch/x86/decode.c b/tools/objtool/arch/x86/decode.c index 0f22768c0d4d..34a579f806e3 100644 --- a/tools/objtool/arch/x86/decode.c +++ b/tools/objtool/arch/x86/decode.c @@ -284,11 +284,16 @@ int arch_decode_instruction(struct elf *elf, struct section *sec, case 0x8d: if (sib == 0x24 && rex_w && !rex_b && !rex_x) { - /* lea disp(%rsp), reg */ *type = INSN_STACK; - op->src.type = OP_SRC_ADD; + if (!insn.displacement.value) { + /* lea (%rsp), reg */ + op->src.type = OP_SRC_REG; + } else { + /* lea disp(%rsp), reg */ + op->src.type = OP_SRC_ADD; + op->src.offset = insn.displacement.value; + } op->src.reg = CFI_SP; - op->src.offset = insn.displacement.value; op->dest.type = OP_DEST_REG; op->dest.reg = op_to_cfi_reg[modrm_reg][rex_r]; |