diff options
author | dim <dim@FreeBSD.org> | 2016-08-23 17:38:06 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2016-08-23 17:38:06 +0000 |
commit | 0944a3c187c8fe1b53b85dfd765ab45e5b0f17c7 (patch) | |
tree | 72467d0d59822960444e8632a9d7595d72df1f89 /lib/clang | |
parent | 740ba0cbad4b689a6c06093e28da4ba29e8ec9ef (diff) | |
download | FreeBSD-src-0944a3c187c8fe1b53b85dfd765ab45e5b0f17c7.zip FreeBSD-src-0944a3c187c8fe1b53b85dfd765ab45e5b0f17c7.tar.gz |
MFC r304530:
Pull in r265122 from upstream llvm trunk (by James Molloy):
Fix for pr24346: arm asm label calculation error in sub
Some ARM instructions encode 32-bit immediates as a 8-bit integer
(0-255) and a 4-bit rotation (0-30, even) in its least significant 12
bits. The original fixup, FK_Data_4, patches the instruction by the
value bit-to-bit, regardless of the encoding. For example, assuming
the label L1 and L2 are 0x0 and 0x104 respectively, the following
instruction:
add r0, r0, #(L2 - L1) ; expects 0x104, i.e., 260
would be assembled to the following, which adds 1 to r0, instead of
260:
e2800104 add r0, r0, #4, 2 ; equivalently 1
The new fixup kind fixup_arm_mod_imm takes care of the encoding:
e2800f41 add r0, r0, #260
Patch by Ting-Yuan Huang!
This fixes label calculation for ARM assembly, and is needed to enable
ARM assembly sources for OpenSSL.
Approved by: re (kib)
Requested by: jkim
Diffstat (limited to 'lib/clang')
-rw-r--r-- | lib/clang/freebsd_cc_version.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/clang/freebsd_cc_version.h b/lib/clang/freebsd_cc_version.h index 27ef96e..5ae84ec 100644 --- a/lib/clang/freebsd_cc_version.h +++ b/lib/clang/freebsd_cc_version.h @@ -1,3 +1,3 @@ /* $FreeBSD$ */ -#define FREEBSD_CC_VERSION 1100006 +#define FREEBSD_CC_VERSION 1100007 |