http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60039
--- Comment #3 from Nick Hudson <skrll at netbsd dot org> --- 1b6: 93 60 mov r9,r0 1b8: 76 02 mov.l r7,@(r0,r2) while (--nblks > 0) { 1ba: 10 41 dt r1 1bc: 03 8f bf.s 1c6 <imalloc+0xd6> 1be: 73 62 mov r7,r2 * If nothing in hash bucket right now, * request more memory from the system. */ if ((op = nextf[bucket]) == NULL) { morecore(bucket); if ((op = nextf[bucket]) == NULL) 1c0: 08 a0 bra 1d4 <imalloc+0xe4> 1c2: 28 22 tst r2,r2 * free list for this hash bucket. */ nextf[bucket] = op; while (--nblks > 0) { op->ov_next = (union overhead *)((caddr_t)op + sz); op = (union overhead *)((caddr_t)op + sz); 1c4: 33 62 mov r3,r2 * Add new memory allocated to that on * free list for this hash bucket. */ nextf[bucket] = op; while (--nblks > 0) { op->ov_next = (union overhead *)((caddr_t)op + sz); 1c6: 23 63 mov r2,r3 1c8: dc 33 add r13,r3 /* * Add new memory allocated to that on * free list for this hash bucket. */ nextf[bucket] = op; while (--nblks > 0) { 1ca: 10 41 dt r1 1cc: fa 8f bf.s 1c4 <imalloc+0xd4> 1ce: 32 22 mov.l r3,@r2 1d0: 73 62 mov r7,r2 r2 at 0x1ce is somehow wrong