forked from OSchip/llvm-project
parent
a5d9d1f154
commit
ac2307b9ff
|
|
@ -323,6 +323,7 @@ bool X86_64TargetInfo::isRelRelative(uint32_t Type) const {
|
||||||
case R_X86_64_PC8:
|
case R_X86_64_PC8:
|
||||||
case R_X86_64_PLT32:
|
case R_X86_64_PLT32:
|
||||||
case R_X86_64_DTPOFF32:
|
case R_X86_64_DTPOFF32:
|
||||||
|
case R_X86_64_DTPOFF64:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -337,6 +338,7 @@ void X86_64TargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type,
|
||||||
write32le(Loc, SA - P);
|
write32le(Loc, SA - P);
|
||||||
break;
|
break;
|
||||||
case R_X86_64_64:
|
case R_X86_64_64:
|
||||||
|
case R_X86_64_DTPOFF64:
|
||||||
write64le(Loc, SA);
|
write64le(Loc, SA);
|
||||||
break;
|
break;
|
||||||
case R_X86_64_32:
|
case R_X86_64_32:
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
callq __tls_get_addr@PLT
|
callq __tls_get_addr@PLT
|
||||||
leaq a@dtpoff(%rax), %rcx
|
leaq a@dtpoff(%rax), %rcx
|
||||||
leaq b@dtpoff(%rax), %rcx
|
leaq b@dtpoff(%rax), %rcx
|
||||||
|
.long b@dtpoff, 0
|
||||||
|
|
||||||
.global a
|
.global a
|
||||||
.hidden a
|
.hidden a
|
||||||
|
|
@ -54,3 +55,7 @@ b:
|
||||||
// DIS-NEXT: 1013: {{.+}} callq
|
// DIS-NEXT: 1013: {{.+}} callq
|
||||||
// DIS-NEXT: 1018: {{.+}} leaq (%rax), %rcx
|
// DIS-NEXT: 1018: {{.+}} leaq (%rax), %rcx
|
||||||
// DIS-NEXT: 101f: {{.+}} leaq 4(%rax), %rcx
|
// DIS-NEXT: 101f: {{.+}} leaq 4(%rax), %rcx
|
||||||
|
// DIS-NEXT: 1026: 04 00
|
||||||
|
// DIS-NEXT: 1028: 00 00
|
||||||
|
// DIS-NEXT: 102a: 00 00
|
||||||
|
// DIS-NEXT: 102c: 00 00
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue