Review Board 2.0.15


ARM: Tag appropriate instructions as IsReturn

Review Request #614 - Created March 30, 2011 and submitted

Information
Ali Saidi
gem5
Reviewers
Default
ali, gblack, nate, stever
ARM: Tag appropriate instructions as IsReturn

   
Posted (March 30, 2011, 2:22 a.m.)
One thing that should change is that isBranch passes through the ISA description code and fills in the template with the same value every time. If it's always the same (or could be harmlessly) then it should just be in the template. Note that this is different from the predicate test because it doesn't use any operands which -do- have to pass through the parser, just a local variable and a constant which have no special requirements. The other rasPop component may be the same, but it was less obvious where all that was being used.
  1. I don't get what you mean. isBranch depends on the instruction and the destination register. I don't see any benefit from creating a new template which would be a duplicate of the non-isbranch case with this the branch case added.  Seems like that is way messier. 
  2. There's only one template that uses isBranch, right? And it's always either "0" or "dest == INTREG_PC", right? So why not just hard code it to "dest == INTREG_PC"? It's at construction time which is less important performance wise, and if you're writing to the PC it's a branch. I don't think you should make a new template, but if you can pull stuff out of the ISA desc with all else being equal then that would be a good idea.