home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / sys / sgi / hardware / 41 < prev    next >
Encoding:
Internet Message Format  |  1992-12-27  |  2.3 KB

  1. Path: sparky!uunet!cs.utexas.edu!sun-barr!olivea!sgigate!odin!sgihub!zola!zuni!anchor!olson
  2. From: olson@anchor.esd.sgi.com (Dave Olson)
  3. Newsgroups: comp.sys.sgi.hardware
  4. Subject: Re: R3000 -> R4000 incompatibility?
  5. Message-ID: <u4u3lq8@zuni.esd.sgi.com>
  6. Date: 27 Dec 92 22:12:58 GMT
  7. References: <1992Dec24.070621.2821@sol.ctr.columbia.edu>
  8. Sender: news@zuni.esd.sgi.com (Net News)
  9. Organization: Silicon Graphics, Inc.  Mountain View, CA
  10. Lines: 40
  11.  
  12. In <1992Dec24.070621.2821@sol.ctr.columbia.edu> penev@venezia (Penio Penev) writes:
  13.  
  14. | Does any one know a reason, why a program, runnng on R3000 would not
  15. | run on R4000?
  16. | I'm using only ALU, memory and branch instructions. No coprocessor 
  17. | (0 or 1), not mul/dev.
  18. | The program runs on R3000 (IRIX 4.0.1), but fails on R4000 (4.0.4).
  19. | The error is reproducible, occures allways in the same region of the
  20. | program, and behaves identically on successive runs. It seems to me
  21. | like a jump to a bad address, resulting from a bad value in the $ra
  22. | register.The problem is that whenever I put brakepoints "close enough"
  23. | and do noting, but cont in them, it disappers.
  24. |
  25. | I have two explanations: 1) I do not fill the load delay slot
  26. | properly, which results in jump to garbage. 2) I have made a mistake,
  27. | but such a one, that the R3000 hazard (un)handling corrects it.
  28.  
  29. You may be running afoul of a bug in the rev 2.2 part of the r4k, if your
  30. program is either some form of interpreter, or is otherwise executing
  31. out of the data segment.  To work around that bug, branch and jump
  32. instructions must be double word aligned (low 3 bits of address 0).
  33.  
  34. Your last paragraph above makes it sound like you are generating
  35. instruction streams without the compiler.
  36.  
  37. The compilers normally work around this, and the kernel has a workaround
  38. for it for pages in the instruction segment (of user programs).
  39.  
  40. This is fixed in rev 3 of the chip (which we aren't shipping yet, and
  41. may not ship, depending on availability of the r4400, and cost of
  42. qualifying a new chip rev).  It is also fixed in the r4400.
  43.  
  44. Programs like interpreters have fallen afoul of this problem.
  45. It is documented in the IRIX 4.0.3 and later release notes.
  46. --
  47. Let no one tell me that silence gives consent,  |   Dave Olson
  48. because whoever is silent dissents.             |   Silicon Graphics, Inc.
  49.     Maria Isabel Barreno                        |   olson@sgi.com
  50.