Path: utzoo!attcan!uunet!husc6!purdue!gatech!amdcad!tim From: tim@amdcad.AMD.COM (Tim Olson) Newsgroups: comp.arch Subject: Re: Execute instructions Message-ID: <22417@amdcad.AMD.COM> Date: 21 Jul 88 00:12:35 GMT References: <11588@steinmetz.ge.com> Reply-To: tim@delirun.amd.com (Tim Olson) Organization: Advanced Micro Devices Lines: 43 Summary: Expires: Sender: Followup-To: In article <11588@steinmetz.ge.com> davidsen@crdos1.UUCP (bill davidsen) writes: | | The old GE600 series had two instructions called XEC (execute) and XED | (execute double). What these did was to fetch an operation from the | target location and execute it (or them) while leaving the IC pointing | at the XED instruction. Since the machine was able to apply IC | modification to any operation, jumps relative to the original | instruction were allowed. Depending upon implementation, you could consider most RISC processors that have delayed branches as having what amounts to the single instruction execute, by putting a jump in the delay slot of another: . . jmp $visit jmp $continue $continue: . . This will cause the following pipeline execution (at least on the 29k): Fetch | <$visit> | <$continue> | <$continue+4> | Decode |jmp $continue | <$visit> | <$continue> | Execute |jmp $visit | jmp $continue | <$visit> | Writeback | | | | This has the effect of executing out-of-line the instruction at the first jump address, then continuing with the stream starting at the second jump address. It may be possible to use this to help debugger breakpoint operation, by moving the instruction at the breakpoint into another location, and replacing it with the breakpoint instruction. When you wish to continue, just execute the replaced instruction out-of-line, and continue with the next. -- -- Tim Olson Advanced Micro Devices (tim@delirun.amd.com)