Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Oct 2001 16:36:12 -0700
From:      Peter Wemm <peter@wemm.org>
To:        Doug Rabson <dfr@nlsystems.com>
Cc:        Marcel Moolenaar <marcel@xcllnt.net>, ia64@FreeBSD.ORG
Subject:   Re: Hazards [was: Re: cvs commit: src/sys/ia64/ia64 sal.c] 
Message-ID:  <20011022233613.038A93808@overcee.netplex.com.au>
In-Reply-To: <Pine.BSF.4.33.0110221400310.76250-100000@herring.nlsystems.com> 

index | next in thread | previous in thread | raw e-mail

as (2.9 and 2.11.2) report:
pmap.s:1230: Warning: Use of 'ld8' violates RAW dependency 'DTC' (data)
pmap.s:1230: Warning: Only the first path encountering the conflict is reported
pmap.s:1213: Warning: This is the location of the conflicting usage
pmap.s:3463: Warning: Use of 'ld8' violates RAW dependency 'DTC' (data)
pmap.s:3463: Warning: Only the first path encountering the conflict is reported
pmap.s:3457: Warning: This is the location of the conflicting usage
pmap.s:3467: Warning: Use of 'st8' violates RAW dependency 'DTC' (data)
pmap.s:3467: Warning: Only the first path encountering the conflict is reported
pmap.s:3457: Warning: This is the location of the conflicting usage


.LBB17:
        .loc 0 208 0
#APP
        ptc.e r16;;		// 1213
#NO_APP
        ;;
        .loc 0 209 0
.LBE17:   
        .file 0 "../../../ia64/ia64/pmap.c"
        .loc 0 508 0
        add r16 = r16, r18
        .loc 0 506 0 
        adds r14 = 1, r15
        ;;
        sxt4 r15 = r14
        ;;
        cmp.gtu p6, p7 = r17, r15
        (p6) br.cond.dptk .L635
.L641:
        .loc 0 510 0
        ld8 r14 = [r23]		// 1230
        ;;

....
.LBB93:
        .loc 0 235 0
#APP
        ptc.l r35,r14;;		// 3457
#NO_APP
        .loc 0 236 0
.LBE93:
        .file 0 "../../../ia64/ia64/pmap.c"
        .loc 0 1192 0
        ld8 r14 = [r34]   	// 3463
        ;;
        and r14 = -2, r14
        ;;
        st8 [r34] = r14		// 3467
        .loc 0 1193 0
.L847:
        ;;

This corresponds to the code:

                for (j = 0; j < pmap_ptc_e_count2; j++) {
                        ia64_ptc_e(addr);
                        addr += pmap_ptc_e_stride2;	// 1230
			^^^^^^
                }
                addr += pmap_ptc_e_stride1;
and:

static void
pmap_clear_pte(struct ia64_lpte *pte, vm_offset_t va)
{
        if (pte->pte_p) {
                pmap_remove_vhpt(va);
                ia64_ptc_l(va, PAGE_SHIFT << 2);
                pte->pte_p = 0;		// 3463/3467
		^^^^^^^^^^^^^^^
        }
}

I haven't finished looking for the info about this.. Is this real?
It seems that gas is complaining about an instruction that it thinks
should be there but is missing.

Cheers,
-Peter
--
Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ia64" in the body of the message



help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011022233613.038A93808>