[all-commits] [llvm/llvm-project] e73f78: [X86][MC] no error diagnostic for out-of-range jrc...

avl-llvm via All-commits all-commits at lists.llvm.org
Tue Nov 26 03:32:49 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e73f78acd34360f7450b81167d9dc858ccddc262
      https://github.com/llvm/llvm-project/commit/e73f78acd34360f7450b81167d9dc858ccddc262
  Author: Alexey Lapshin <a.v.lapshin at mail.ru>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
    M llvm/test/MC/MachO/reloc.s
    A llvm/test/MC/X86/x86-jcxz-loop-fixup.s

  Log Message:
  -----------
  [X86][MC] no error diagnostic for out-of-range jrcxz/jecxz/jcxz

Fix for PR24072:

X86 instructions jrcxz/jecxz/jcxz performs short jumps if rcx/ecx/cx register is 0
The maximum relative offset for a forward short jump is 127 Bytes (0x7F).
The maximum relative offset for a backward short jump is 128 Bytes (0x80).

Gnu assembler warns when the distance of the jump exceeds the maximum but llvm-as does not.

Patch by Konstantin Belochapka and Alexey Lapshin

Differential Revision: https://reviews.llvm.org/D70652




More information about the All-commits mailing list