diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cda4d6df33a..71a8c5e610c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-06-02 Tom Tromey + + * fixinc/fixincl.x: Rebuilt. + * fixinc/inclhack.def (thread_keyword): Match `*__thread'. + 2002-06-02 Neil Booth config/i370: diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index f4b0ee7ff5d..12e9e8f3991 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -7656,16 +7656,27 @@ reg_loc_descriptor (rtl) rtx rtl; { dw_loc_descr_ref loc_result = NULL; - unsigned reg; + unsigned reg, i, max; if (REGNO (rtl) >= FIRST_PSEUDO_REGISTER) return 0; reg = reg_number (rtl); - if (reg <= 31) - loc_result = new_loc_descr (DW_OP_reg0 + reg, 0, 0); - else - loc_result = new_loc_descr (DW_OP_regx, reg, 0); + max = HARD_REGNO_NREGS (reg, GET_MODE (rtl)); + for (i = 0; i < max; ++i) + { + add_loc_descr (&loc_result, + new_loc_descr (reg <= 31 ? DW_OP_reg0 + reg : DW_OP_regx, + reg <= 31 ? 0 : reg, + 0)); + + if (max > 1) + add_loc_descr (&loc_result, + new_loc_descr (DW_OP_piece, + GET_MODE_SIZE (reg_raw_mode[reg]), 0)); + + ++reg; + } return loc_result; } diff --git a/gcc/fixinc/fixincl.x b/gcc/fixinc/fixincl.x index 968ae237c86..4cd9f63db3f 100644 --- a/gcc/fixinc/fixincl.x +++ b/gcc/fixinc/fixincl.x @@ -4587,7 +4587,7 @@ tSCC zThread_KeywordList[] = * content selection pattern - do fix if pattern found */ tSCC zThread_KeywordSelect0[] = - " __thread([,)])"; + "([* ])__thread([,)])"; #define THREAD_KEYWORD_TEST_CT 1 static tTestDesc aThread_KeywordTests[] = { @@ -4598,7 +4598,7 @@ static tTestDesc aThread_KeywordTests[] = { */ static const char* apzThread_KeywordPatch[] = { "format", - " __thr%1", + "%1__thr%2", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * diff --git a/gcc/fixinc/inclhack.def b/gcc/fixinc/inclhack.def index 2ae1e56d221..c9617bd07d1 100644 --- a/gcc/fixinc/inclhack.def +++ b/gcc/fixinc/inclhack.def @@ -2892,9 +2892,9 @@ fix = { hackname = thread_keyword; files = "pthread.h"; files = "bits/sigthread.h"; - select = " __thread([,)])"; + select = "([* ])__thread([,)])"; c_fix = format; - c_fix_arg = " __thr%1"; + c_fix_arg = "%1__thr%2"; test_text = "extern int pthread_create (pthread_t *__restrict __thread,\n"