forked from Imagelibrary/binutils-gdb
2008-08-14 Cary Coutant <ccoutant@google.com>
* x86_64.cc (Target_x86_64::Relocate::relocat_tls): Use addend for DTPOFF32, DTPOFF64, and TPOFF32 relocs. * testsuite/tls_test.cc (struct int128): 128-bit struct for testing TLS relocs with non-zero addend. (v12): New TLS variable. (t12): New test. (t_last): Add check for v12. * testsuite/tls_test.h (t12): New function. * testsuite/tls_test_main.cc (thread_routine): Call new test.
This commit is contained in:
@@ -73,6 +73,14 @@ static __thread int v4 = 4;
|
||||
__thread int v5;
|
||||
static __thread int v6;
|
||||
|
||||
struct int128
|
||||
{
|
||||
long long hi;
|
||||
long long lo;
|
||||
};
|
||||
|
||||
static __thread struct int128 v12 = { 115, 125 };
|
||||
|
||||
bool
|
||||
t1()
|
||||
{
|
||||
@@ -186,6 +194,16 @@ t10()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
t12()
|
||||
{
|
||||
struct int128 newval = { 335, 345 };
|
||||
CHECK_EQ_OR_RETURN((int) v12.hi, 115);
|
||||
CHECK_EQ_OR_RETURN((int) v12.lo, 125);
|
||||
v12 = newval;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
t_last()
|
||||
{
|
||||
@@ -195,6 +213,8 @@ t_last()
|
||||
CHECK_EQ_OR_RETURN(v4, 40);
|
||||
CHECK_EQ_OR_RETURN(v5, 50);
|
||||
CHECK_EQ_OR_RETURN(v6, 60);
|
||||
CHECK_EQ_OR_RETURN((int) v12.hi, 335);
|
||||
CHECK_EQ_OR_RETURN((int) v12.lo, 345);
|
||||
CHECK_EQ_OR_RETURN(o1, -10);
|
||||
CHECK_EQ_OR_RETURN(o2, -20);
|
||||
CHECK_EQ_OR_RETURN(o3, -30);
|
||||
|
||||
Reference in New Issue
Block a user