Commit 1157c688 authored by tim@threads.polyesthetic.msg's avatar tim@threads.polyesthetic.msg
Browse files

Changes from teg@redhat.com - subtle bugs that only show up under

certain circumstances.
parent 58b37627
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -682,10 +682,14 @@ typedef char bool; /* Ordinary boolean values 0 1 */
			  *((T)+4)=(uchar) (((A) >> 32)); }
#define int8store(T,A)	*((ulonglong *) (T))= (ulonglong) (A)

#define doubleget(V,M)	{ *((long *) &V) = *((long*) M); \
			  *(((long *) &V)+1) = *(((long*) M)+1); }
#define doublestore(T,V) { *((long *) T) = *((long*) &V); \
			   *(((long *) T)+1) = *(((long*) &V)+1); }
typedef union {
  double v;
  long m[2];
} doubleget_union;
#define doubleget(V,M)	{ ((doubleget_union *)&V)->m[0] = *((long*) M); \
			  ((doubleget_union *)&V)->m[1] = *(((long*) M)+1); }
#define doublestore(T,V) { *((long *) T) = ((doubleget_union *)&V)->m[0]; \
			   *(((long *) T)+1) = ((doubleget_union *)&V)->m[1]; }
#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); }
#define float8get(V,M) doubleget((V),(M))
#define float4store(V,M) memcpy((byte*) V,(byte*) (&M),sizeof(float))
+2 −2
Original line number Diff line number Diff line
@@ -31,12 +31,12 @@ strstr:
!    if (*str++ == *search) {
!      i=(char*) str; j=(char*) search+1;

	ldsb	[%o1],%g6		! g6= First char of search
	ldsb	[%o1],%o2		! g6= First char of search
.top:
	ldsb	[%o0],%g3		! g3= First char of rest of str
	cmp	%g3,0
	be	.abort			! Found end null		; 
	cmp	%g3,%g6
	cmp	%g3,%o2
	bne	.top
	add	%o0,1,%o0