On Tuesday 11 November 2014 11:41 AM, David Gibson wrote: > On Tue, Nov 11, 2014 at 11:18:05AM +0530, Aravinda Prasad wrote: >> >> >> On Tuesday 11 November 2014 08:49 AM, David Gibson wrote: >>> On Thu, Nov 06, 2014 at 03:30:01PM +0530, Aravinda Prasad wrote: >>>> On Wednesday 05 November 2014 09:16 PM, Tom Musta wrote: >>>>> On 11/5/2014 2:32 AM, Alexander Graf wrote: >>>>>> On 05.11.14 08:13, Aravinda Prasad wrote: >>> >>> [snip] >>>>>>> + /* >>>>>>> + * ori r3,r3,KVMPPC_H_REPORT_MC_ERR. The KVMPPC_H_REPORT_MC_ERR >>>>>>> + * value is patched below >>>>>>> + */ >>>>>>> +1: ori 3,3,0 >>>>> >>>>> Why do "li 3,0" followed by "ori 3,3,X"? Isn't this just "li 3,X" ? >>>>> (aka "addi 3,0,X") >>>> >>>> I remember I first tried doing li r3,X but faced some problem (but not >>>> able to exactly recall what was the problem) may be due to not familiar >>>> with ppc assembly. >>> >>> This would be because with the offset to the private hcalls, the >>> actual hcall number is 0xf003, which means an li instruction will sign >>> extend it incorrectly. So you will need two instructions to load the >>> number. >> >> hmm.. ok > > At least, I think you'll need to instructions. I don't remember for > certain if 'ori 3,0,X' will OR X with literal 0 or the contents of r0.
It is ORed with r0 >From ISA: ori RA,RS,UI (RA) <- (RS) | (0 || UI) The contents of register RS are ORed with 0 || UI and the result is placed into register RA. > -- Regards, Aravinda