|
load pc-relative
by Unknown on Mar 13, 2005 |
Not available! | ||
|
* György 'nog' Jeney (nog@sdf.lonestar.org) wrote:
> Is this the only instruction you couldn't map to
> or1200 instructions ? (if not which are the > others). I'd suggest you a deal: if you implement the mapping > from ARM Thumb to or1200 ISA i'll provide you the missing instruction. OpenRISC is its *own* architechture. While I agree that haveing a Thumb-style instruction set for openrisc is not a bad thing, adding instructions to the or1200 ISA just because arm has them is IMHO not a good enough reason. Like I still can't see where a load pc relative instruction (I see the same problems with this that Damjan and I discussed about the NPC spr) would be usefull I just don't see why we should bloat the or1200 ISA with a useless instruction just on the grounds that THEY have it so it must be usefull. If the designers of the openrisc architechture wanted an architechture that is basically arm, they would have implemented that architechture and not go to the pain of porting a whole toolchain, maintaining the architechture, write a simulator, etc. I don't wish to deter you from your work but we should keep in mind this little comment from kernel developer Ingo Molnar, who put it best: "The Linux acceptance process is not about "whose patch sucks least", but whether it hits a subsystem-specific bar of architectural requirements or not.... We'll rather live on with one less feature for another year than with a crappy feature that is twice as hard to get rid of!" While we aren't discussing the linux kernel, IMO this comment should be valid about the openrisc development process (except that we CAN'T get rid of crappy features...). I hope I'm not going to be taken to suggest that no more instruction should be added to the openrisc ISA, I'm just saying that there should be atleast one good (practical) reason to add an instruction and the reason posted here is not good enough (IMHO). Your points are valid, but i do not see how would thumb style instruction set for OpenRISC do any harm. Remember, openrisc is a softcore, and i had assumed all the time that this mode would be provided as one of the options. (like you can synthesise openrisc with or without mmu, hw. multiplication, devision and a dozen of other options). 30-40% smaller code size can be a big/deciding factor for some usages, so i believe that having it implemented can not hurt. I belive that if Stefano thinks thumb-mode would help his project he'll go and implement it anyway. So why shouldn't we give him a chance to do it and when (and if) we see the patch decide if and under what conditions we want to merge it with openrisc. (and i'm sure that it woun't get merged unless it has a clean interface to present openrisc core). In the end if such an approach is found useful adding one instruction (again as an option or as a costum instruction) is good IMHO, since it would allow you to reuse the complete (optimized, well proven) arm toolchain. best regards, p. |
|||
|
load pc-relative
by Unknown on Mar 13, 2005 |
Not available! | ||
|
So even without any other usefullnes of the particular instruction
it has a value if it allows a reuse of complete arm toolchain (just imagine how much work is needed to produce a stable toolchain...). I'm not saying we should add it, but we shouldn't just disregard it. The custom instructions (reserved in openrisc ISA) seam ideal for this case... Don't disregard it but put some thought into it. We really don't want a feature that we later find to cause more headaches than is worth and by that stage we can't remove it. Stefano, if you're still reading this thread, I don't want to discourage you from doing any work on or1200. My opinions are only that: my opinions. They do not reflect those of the maintainers of the architechture in any way what so ever. nog. |
|||
|
load pc-relative
by Unknown on Mar 13, 2005 |
Not available! | ||
|
* György 'nog' Jeney (nog@sdf.lonestar.org) wrote:
> Your points are valid, but i do not see how would thumb style instruction set for
> OpenRISC do any harm. Remember, openrisc is a softcore, and i had assumed all the > time that this mode would be provided as one of the options. (like you can synthesise > openrisc with or without mmu, hw. multiplication, devision and a dozen > of other options). I knew I was going to get missinterpreted. I never said that a thumb style instruction set would be any harm. I'll reiterate: I don't think that adding random, useless, instructions (I'm talking about the core openrisc ones, not the thumb ones) just because others are doing it will do us any good.
> In the end if such an approach is found useful adding one instruction
> (again as an option or as a costum instruction) is good IMHO, since > it would allow you to reuse the complete (optimized, > well proven) arm toolchain. We can `base' `our' thumb-style ISA on the arm one (ie. implement everything except the instructions that we find useless), no problem there. Ofcourse if I am really missing the point of this one instruction, feel free to enlighten me. The idea was to have binary compatibility with arm thumb ISA, so that we could reuse their tools. This ofcourse brings us to legal issues, and i have no idea if we are allowed to do so ... So even without any other usefullnes of the particular instruction it has a value if it allows a reuse of complete arm toolchain (just imagine how much work is needed to produce a stable toolchain...). I'm not saying we should add it, but we shouldn't just disregard it. The custom instructions (reserved in openrisc ISA) seam ideal for this case... best regards, p. |
|||
|
load pc-relative
by Unknown on Mar 13, 2005 |
Not available! | ||
|
Agreed. What issues do you see except the implementation
problems (problems with PC) and 'headache feature we can not remove' ? Let's assume for moment that there aren't any major problems implementing the instruction. (i know this may be wrong assumption) The other we can easily address by not putting the instruction in toolchain (or at least gcc) and explicitly forbid it's use in the arch manual, or even better, including it in the core _only_ for thumb mode use. Let's packpedal abit here. Now you are saying that the instructions need to be put into our (openrisc) toolchain??? But agreed with your comment below, let's wait for the actual implementation.
But let's just wait for now to see if this thumb mode ever gets really
implemented. I'm sure when and if it's done in right way and we can see some real benefits of it's usage we'll find a proper way to include the missing instruction. hey, we may even omit it at that time. really my only point was, if it's one instruction that is a problem don't worry about it now. the right solution will probably just pop up when everythig else is working. Agreed. No need to preemptivly try and solve problems that we don't even know for sure are problems. nog. |
|||
|
load pc-relative
by Unknown on Mar 13, 2005 |
Not available! | ||
|
* György 'nog' Jeney (nog@sdf.lonestar.org) wrote:
> So even without any other usefullnes of the particular instruction
> it has a value if it allows a reuse of complete arm toolchain (just > imagine how much work is needed to produce a stable toolchain...). > > I'm not saying we should add it, but we shouldn't just disregard it. The > custom instructions (reserved in openrisc ISA) seam ideal for this case... Don't disregard it but put some thought into it. We really don't want a feature that we later find to cause more headaches than is worth and by that stage we can't remove it. Agreed. What issues do you see except the implementation problems (problems with PC) and 'headache feature we can not remove' ? Let's assume for moment that there aren't any major problems implementing the instruction. (i know this may be wrong assumption) The other we can easily address by not putting the instruction in toolchain (or at least gcc) and explicitly forbid it's use in the arch manual, or even better, including it in the core _only_ for thumb mode use. But let's just wait for now to see if this thumb mode ever gets really implemented. I'm sure when and if it's done in right way and we can see some real benefits of it's usage we'll find a proper way to include the missing instruction. hey, we may even omit it at that time. really my only point was, if it's one instruction that is a problem don't worry about it now. the right solution will probably just pop up when everythig else is working. best regards, p. |
|||
|
load pc-relative
by Unknown on Mar 13, 2005 |
Not available! | ||
|
* György 'nog' Jeney (nog@sdf.lonestar.org) wrote:
> Agreed. What issues do you see except the implementation
> problems (problems with PC) and 'headache feature we can not remove' ? > > Let's assume for moment that there aren't any major problems implementing the > instruction. (i know this may be wrong assumption) > > The other we can easily address by not putting the instruction > in toolchain (or at least gcc) and explicitly forbid it's use in the > arch manual, or even better, including it in the core _only_ for thumb > mode use. Let's packpedal abit here. Now you are saying that the instructions need to be put into our (openrisc) toolchain??? But agreed with your comment below, let's wait for the actual implementation. No, no, you missunderstood me. I don't want it in the toolchain (unless it's proven that it's usefull). So to be clear, if by some chance ends in the openrisc (that's what i ment with core) i certainly don't want it to be used by anything but thumb mode. (and suggest forcing this somehow in the openrisc). So now we wait ... ;) best regards, p. |
|||
|
load pc-relative
by Unknown on Mar 14, 2005 |
Not available! | ||
|
The idea was to have binary compatibility with arm thumb ISA, so that we could reuse their tools. This ofcourse brings us to legal issues, and i have no idea if we are allowed to do so ... ARM patented the THUMB architecture and instruction set. Copying it would certainly put us in the line of fire. And THEY have certainly more lawyers than we do ;-) |
|||



