Skip to contentSkip to conversation

Work on IP30

PATCH In review Stanislaw Skowronek 7 participants 13 messages Apr 12, 2004 – Apr 19, 2004 MIPS

lore
Share & tools
lore
#0 lore raw

My Octane got as far as 'Calibrating delay loop... ' now. It works with ARCS graphical console, which is a Good Thing. Memory identification is correct. Caches work OK. I'm going to do the IRQs tomorrow, but I foresee it will be really hard as there is no documentation for the HEART. Well, we shall experiment.

Fortunately, the Octane has one really nice feature: the power button is hooked up to an interrupt source. It may prove quite useful for debugging.

Interesting note: the ARCS console breaks when I change KSEG0 cache coherence in the CP0_CONFIG register (in c-r4k.c). Of course, it breaks sooner or later, not exactly afterwards, unless I flush cache exactly after changing; it breaks immediately then. I don't give a hoot, because IP30 has almost no RAM in KSEG0 and the kernel runs in XKPHYS, always cached copy-on-write. But those of you with another machines might be interested.

Stanislaw Skowronek

--<=>--
Paranoid: one who is truly in touch with reality.

#1 lore raw
Quoted 7 lines · Stanislaw Skowronek

Interesting note: the ARCS console breaks when I change KSEG0 cache coherence in the CP0_CONFIG register (in c-r4k.c). Of course, it breaks sooner or later, not exactly afterwards, unless I flush cache exactly after changing; it breaks immediately then. I don't give a hoot, because IP30 has almost no RAM in KSEG0 and the kernel runs in XKPHYS, always cached copy-on-write. But those of you with another machines might be interested.

Most firmware breaks at some point due to Linux fiddling with it's resources. What differs is how and when it breaks. In case of IP27 the first TLB flush for example is going to kill ARC.

And remember, it's written ARC but pronounced ARGGHHHH ;)

Ralf

#2 lore raw

PATCH 1/1 gcc 3.4 drops "accum" clobber, replace with "hi" in time.c

This 2.4 patch look OK?

Regards,
Brad

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +4 -4
diff -u -r1.1.1.1 time.c
@@ -242,7 +242,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)
-               : "lo", "accum");
+               : "lo", "hi");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -297,7 +297,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo", "hi");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r" (USECS_PER_JIFFY),
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", "hi");
                        cached_quotient = quotient;
                }
        }
@@ -353,7 +353,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo", "hi");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
#3 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" in time.c

Uh oh, with this patch:

...
time.c: In function `fixed_rate_gettimeoffset':
time.c:242: error: can't find a register in class HI_REG' while reloading asm'
...

Regards,
Brad

----- Original Message -----
From: "Bradley D. LaRonde" <[email protected]>
To: <[email protected]>
Sent: Monday, April 12, 2004 7:42 PM
Subject: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" in time.c

Quoted 47 lines

This 2.4 patch look OK?

Regards,
Brad

diff -u -r1.1.1.1 time.c

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +4 -4
@@ -242,7 +242,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)
-               : "lo", "accum");
+               : "lo", "hi");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -297,7 +297,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo", "hi");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r" (USECS_PER_JIFFY),
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", "hi");
                        cached_quotient = quotient;
                }
        }
@@ -353,7 +353,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo", "hi");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
#4 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" in time.c

Quoted 9 lines · Bradley D. LaRonde

Uh oh, with this patch:

...
time.c: In function `fixed_rate_gettimeoffset':
time.c:242: error: can't find a register in class HI_REG' while reloading asm'
...

Quoted 1 line
Quoted 9 lines

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 line 343

Quoted 9 lines

/*
* Due to possible jiffies inconsistencies, we need to check

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +1 -1
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r" (USECS_PER_JIFFY),
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", "hi");
                        cached_quotient = quotient;

Maybe this hunk where you use "hi" twice for the same asm statement?

-eric

Signature · 1 line
Eric Christopher <[email protected]>
#5 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

----- Original Message -----
From: "Eric Christopher" <[email protected]>
To: "Bradley D. LaRonde" <[email protected]>
Cc: <[email protected]>
Sent: Monday, April 12, 2004 9:02 PM
Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 6 lines · Bradley D. LaRonde
Quoted 5 lines

Uh oh, with this patch:

...
time.c: In function `fixed_rate_gettimeoffset':
time.c:242: error: can't find a register in class `HI_REG' while

reloading

Quoted 4 lines
Quoted 4 lines

`asm'
...

Quoted 1 line
Quoted 12 lines
Quoted 9 lines

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 line 343

Quoted 9 lines

/*
* Due to possible jiffies inconsistencies, we need to check

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +1 -1
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r" (USECS_PER_JIFFY),
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", "hi");
                        cached_quotient = quotient;

Maybe this hunk where you use "hi" twice for the same asm statement?

Yeah, that's messed up, but it fails here too:

@@ -242,7 +242,7 @@

        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)

- : "lo", "accum");
+ : "lo", "hi");

Regards,
Brad

#6 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 36 lines · Bradley D. LaRonde

----- Original Message -----
From: "Eric Christopher" <[email protected]>
To: "Bradley D. LaRonde" <[email protected]>
Cc: <[email protected]>
Sent: Monday, April 12, 2004 9:02 PM
Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 6 lines · Bradley D. LaRonde
Quoted 5 lines

Uh oh, with this patch:

...
time.c: In function `fixed_rate_gettimeoffset':
time.c:242: error: can't find a register in class `HI_REG' while

reloading

Quoted 4 lines
Quoted 4 lines

`asm'
...

Quoted 1 line
Quoted 12 lines
Quoted 9 lines

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 line 343

Quoted 9 lines

/*
* Due to possible jiffies inconsistencies, we need to check

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +1 -1
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r" (USECS_PER_JIFFY),
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", "hi");
                        cached_quotient = quotient;

Maybe this hunk where you use "hi" twice for the same asm statement?

Yeah, that's messed up, but it fails here too:

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 line 245

Quoted 5 lines
mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +1 -1
@@ -242,7 +242,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)
-               : "lo", "accum");
+               : "lo", "hi");

Because the asm is outputting something in HI - see the =h?

Signature · 2 lines
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer
#7 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

----- Original Message -----
From: "Daniel Jacobowitz" <[email protected]>
To: "Bradley D. LaRonde" <[email protected]>
Cc: <[email protected]>; "Eric Christopher" <[email protected]>
Sent: Monday, April 12, 2004 9:07 PM
Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 16 lines · Bradley D. LaRonde
Quoted 15 lines

----- Original Message -----
From: "Eric Christopher" <[email protected]>
To: "Bradley D. LaRonde" <[email protected]>
Cc: <[email protected]>
Sent: Monday, April 12, 2004 9:02 PM
Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 6 lines · Bradley D. LaRonde
Quoted 5 lines

Uh oh, with this patch:

...
time.c: In function `fixed_rate_gettimeoffset':
time.c:242: error: can't find a register in class `HI_REG' while

Quoted 7 lines
Quoted 7 lines

reloading

Quoted 6 lines
Quoted 6 lines

`asm'
...

Quoted 3 lines

/*
* Due to possible jiffies inconsistencies, we need to

check

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Review line 340

Quoted 3 lines
(quoted diff) +0 -0
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r"

(USECS_PER_JIFFY),

Quoted 10 lines
Quoted 10 lines
Quoted 7 lines
Quoted 4 lines

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 line 343

Quoted 4 lines
mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +1 -1
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", "hi");
                        cached_quotient = quotient;

Maybe this hunk where you use "hi" twice for the same asm statement?

Yeah, that's messed up, but it fails here too:

Quoted 8 lines

mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 line 245

Quoted 6 lines
mips/kernel/time.c 12 Apr 2004 23:41:38 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +1 -1
@@ -242,7 +242,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)
-               : "lo", "accum");
+               : "lo", "hi");

Because the asm is outputting something in HI - see the =h?

Oh... yeah, I guess gcc knows that the output is clobbered. :-P

So just remove the accum clobbers?

Regards,
Brad

#8 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

OK, so this patch actually builds, and it sounds like it will do the job, since "accum" means "hi and low", "lo" is already clobbered in all cases, and either "hi" is the output and doesn't need clobbering (hunks 1, 2, and 4), or "hi" is already clobbered (hunk 3).

Regards,
Brad

mips/kernel/time.c 13 Apr 2004 01:19:15 -0000 renamed from mips/kernel/time.c 10 Nov 2003 21:06:52 -0000 1.1.1.1 +4 -4
diff -u -r1.1.1.1 time.c
@@ -242,7 +242,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)
-               : "lo", "accum");
+               : "lo");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -297,7 +297,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r" (USECS_PER_JIFFY),
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo");
                        cached_quotient = quotient;
                }
        }
@@ -353,7 +353,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (quotient)
-               : "lo", "accum");
+               : "lo");
 
        /*
         * Due to possible jiffies inconsistencies, we need to check

----- Original Message -----
From: "Bradley D. LaRonde" <[email protected]>
To: "Daniel Jacobowitz" <[email protected]>
Cc: <[email protected]>; "Eric Christopher" <[email protected]>
Sent: Monday, April 12, 2004 9:12 PM
Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 65 lines

----- Original Message -----
From: "Daniel Jacobowitz" <[email protected]>
To: "Bradley D. LaRonde" <[email protected]>
Cc: <[email protected]>; "Eric Christopher" <[email protected]>
Sent: Monday, April 12, 2004 9:07 PM
Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 16 lines · Bradley D. LaRonde
Quoted 15 lines

----- Original Message -----
From: "Eric Christopher" <[email protected]>
To: "Bradley D. LaRonde" <[email protected]>
Cc: <[email protected]>
Sent: Monday, April 12, 2004 9:02 PM
Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 6 lines · Bradley D. LaRonde
Quoted 5 lines

Uh oh, with this patch:

...
time.c: In function `fixed_rate_gettimeoffset':
time.c:242: error: can't find a register in class `HI_REG' while

Quoted 7 lines
Quoted 7 lines

reloading

Quoted 6 lines
Quoted 6 lines

`asm'
...

Quoted 3 lines

/*
* Due to possible jiffies inconsistencies, we need to

check

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Review line 340

Quoted 3 lines
(quoted diff) +0 -0
@@ -339,7 +339,7 @@
                                : "r" (timerhi), "m" (timerlo),
                                  "r" (tmp), "r"

(USECS_PER_JIFFY),

Quoted 10 lines
Quoted 10 lines
Quoted 7 lines
Quoted 4 lines

Review line 343

Quoted 4 lines
(quoted diff) +1 -1
                                  "r" (USECS_PER_JIFFY_FRAC)
-                               : "hi", "lo", "accum");
+                               : "hi", "lo", "hi");
                        cached_quotient = quotient;

Maybe this hunk where you use "hi" twice for the same asm statement?

Yeah, that's messed up, but it fails here too:

Quoted 8 lines

Review line 245

Quoted 6 lines
(quoted diff) +1 -1
@@ -242,7 +242,7 @@
        __asm__("multu  %1,%2"
                : "=h" (res)
                : "r" (count), "r" (sll32_usecs_per_cycle)
-               : "lo", "accum");
+               : "lo", "hi");

Because the asm is outputting something in HI - see the =h?

Oh... yeah, I guess gcc knows that the output is clobbered. :-P

So just remove the accum clobbers?

Regards,
Brad

#9 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 4 lines · Bradley D. LaRonde

OK, so this patch actually builds, and it sounds like it will do the job, since "accum" means "hi and low", "lo" is already clobbered in all cases, and either "hi" is the output and doesn't need clobbering (hunks 1, 2, and 4), or "hi" is already clobbered (hunk 3).

There are more places this should be dealt with and I have the following
preliminary patch for this, but I'm unsure about removal of "accum" being completely safe for older compilers.

Signature · 95 lines
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: [email protected], PGP key available        +

patch-mips-2.4.24-pre2-20040116-mips-gcc3-2
diff -up --recursive --new-file linux-mips-2.4.24-pre2-20040116.macro/arch/mips/kernel/time.c linux-mips-2.4.24-pre2-20040116/arch/mips/kernel/time.c
--- linux-mips-2.4.24-pre2-20040116.macro/arch/mips/kernel/time.c	2004-01-15 03:56:58.000000000 +0000
+++ linux-mips-2.4.24-pre2-20040116/arch/mips/kernel/time.c	2004-02-02 04:38:34.000000000 +0000
@@ -242,7 +242,7 @@ static unsigned long fixed_rate_gettimeo
 	__asm__("multu	%1,%2"
 		: "=h" (res)
 		: "r" (count), "r" (sll32_usecs_per_cycle)
-		: "lo", "accum");
+		: "lo");
 
 	/*
 	 * Due to possible jiffies inconsistencies, we need to check
@@ -297,7 +297,7 @@ static unsigned long calibrate_div32_get
 	__asm__("multu  %1,%2"
 		: "=h" (res)
 		: "r" (count), "r" (quotient)
-		: "lo", "accum");
+		: "lo");
 
 	/*
 	 * Due to possible jiffies inconsistencies, we need to check
@@ -339,7 +339,7 @@ static unsigned long calibrate_div64_get
 				: "r" (timerhi), "m" (timerlo),
 				  "r" (tmp), "r" (USECS_PER_JIFFY),
 				  "r" (USECS_PER_JIFFY_FRAC)
-				: "hi", "lo", "accum");
+				: "hi", "lo");
 			cached_quotient = quotient;
 		}
 	}
@@ -353,7 +353,7 @@ static unsigned long calibrate_div64_get
 	__asm__("multu	%1,%2"
 		: "=h" (res)
 		: "r" (count), "r" (quotient)
-		: "lo", "accum");
+		: "lo");
 
 	/*
 	 * Due to possible jiffies inconsistencies, we need to check
diff -up --recursive --new-file linux-mips-2.4.24-pre2-20040116.macro/arch/mips64/kernel/cpu-probe.c linux-mips-2.4.24-pre2-20040116/arch/mips64/kernel/cpu-probe.c
--- linux-mips-2.4.24-pre2-20040116.macro/arch/mips64/kernel/cpu-probe.c	2003-12-11 03:56:36.000000000 +0000
+++ linux-mips-2.4.24-pre2-20040116/arch/mips64/kernel/cpu-probe.c	2004-02-02 04:44:30.000000000 +0000
@@ -177,7 +177,7 @@ static inline void mult_sh_align_mod(lon
 		".set	pop"
 		: "=&r" (lv1), "=r" (lw)
 		: "r" (m1), "r" (m2), "r" (s), "I" (0)
-		: "hi", "lo", "accum");
+		: "hi", "lo");
 	/* We have to use single integers for m1 and m2 and a double
 	 * one for p to be sure the mulsidi3 gcc's RTL multiplication
 	 * instruction has the workaround applied.  Older versions of
diff -up --recursive --new-file linux-mips-2.4.24-pre2-20040116.macro/arch/mips64/kernel/time.c linux-mips-2.4.24-pre2-20040116/arch/mips64/kernel/time.c
--- linux-mips-2.4.24-pre2-20040116.macro/arch/mips64/kernel/time.c	2004-01-15 03:57:03.000000000 +0000
+++ linux-mips-2.4.24-pre2-20040116/arch/mips64/kernel/time.c	2004-02-02 04:39:21.000000000 +0000
@@ -242,7 +242,7 @@ static unsigned long fixed_rate_gettimeo
 	__asm__("multu	%1,%2"
 		: "=h" (res)
 		: "r" (count), "r" (sll32_usecs_per_cycle)
-		: "lo", "accum");
+		: "lo");
 
 	/*
 	 * Due to possible jiffies inconsistencies, we need to check
@@ -297,7 +297,7 @@ static unsigned long calibrate_div32_get
 	__asm__("multu  %1,%2"
 		: "=h" (res)
 		: "r" (count), "r" (quotient)
-		: "lo", "accum");
+		: "lo");
 
 	/*
 	 * Due to possible jiffies inconsistencies, we need to check
@@ -339,7 +339,7 @@ static unsigned long calibrate_div64_get
 				: "r" (timerhi), "m" (timerlo),
 				  "r" (tmp), "r" (USECS_PER_JIFFY),
 				  "r" (USECS_PER_JIFFY_FRAC)
-				: "hi", "lo", "accum");
+				: "hi", "lo");
 			cached_quotient = quotient;
 		}
 	}
@@ -353,7 +353,7 @@ static unsigned long calibrate_div64_get
 	__asm__("multu	%1,%2"
 		: "=h" (res)
 		: "r" (count), "r" (quotient)
-		: "lo", "accum");
+		: "lo");
 
 	/*
 	 * Due to possible jiffies inconsistencies, we need to check
#10 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 4 lines · Maciej W. Rozycki

There are more places this should be dealt with and I have the following
preliminary patch for this, but I'm unsure about removal of "accum" being completely safe for older compilers.

Works fine for gcc-3.1.1 and my Swarm board boots just fine with this change and it seems stable. I vote for you to go ahead and commit the fixes to CVS. Thanks Maciej.

-Steve

#11 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

Quoted 3 lines · Steven J. Hill

Works fine for gcc-3.1.1 and my Swarm board boots just fine with this change and it seems stable. I vote for you to go ahead and commit the fixes to CVS. Thanks Maciej.

I'm worried more about 2.95. And even if it works now, it may stop after
some changes, if the compiler decides it's safe to keep something in "accum" across the asm.

Signature · 3 lines
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: [email protected], PGP key available        +
#12 lore raw

Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c

In reply to Maciej W. Rozycki
Quoted 9 lines · Maciej W. Rozycki
Quoted 5 lines

OK, so this patch actually builds, and it sounds like it will do the job, since "accum" means "hi and low", "lo" is already clobbered in all cases, and either "hi" is the output and doesn't need clobbering (hunks 1, 2, and 4), or "hi" is already clobbered (hunk 3).

There are more places this should be dealt with and I have the following
preliminary patch for this, but I'm unsure about removal of "accum" being completely safe for older compilers.