[aarch64-port-dev ] C2 error on ARM sim only regardingcall to runtime from non-compiled code

Andrew Dinn adinn at redhat.com
Fri Oct 4 10:27:45 PDT 2013


On 04/10/13 18:21, Andrew Haley wrote:
> On 10/04/2013 06:16 PM, Andrew Dinn wrote:
>>
>>
>> On 04/10/13 18:05, Andrew Haley wrote:
>>> On 10/04/2013 05:40 PM, Andrew Dinn wrote:
>>>> (gdb) x/i OptoRuntime::new_array_nozero_C
>>>>    0x7fb79f1f10 <OptoRuntime::new_array_nozero_C(Klass*, int,
>>>> JavaThread*)>:  stp      x29, x30, [sp,#-128]!
>>>>
>>>> i.e the return address is at offset 128. 
>>>
>>> No it's not.  That's a predecrement with a writeback.
>>
>> Hmm, not sure what the objection is here unless its that I omitted the
>> direction of my 128.
> 
> Just sayin' that after that instruction executes, the return address
> is just above the SP, not at offset 128.

Ah, ok, you are looking at this half empty glass from below (i.e. sp
after it been decremented) whereas I am looking at it from above (i.e.
sp before it has been decremented).

>> On Intel x29 is written at offset -8 (bytes) from the SP value in the
>> anchor -- equivalently, offset 8 bytes from the value of SP when the
>> routine is called.

 of course that second 8 should have been -8

>> That's where the frame code expects it (i evaluates _anchor._sp[-1]).
>>
>> The above instruction writes x29 at offset -128 bytes from the value of
>> SP when the routine is called i.e. not where the frame code expects it.
> 
> Sure, I get that.

Ok, good.

regards,


Andrew Dinn
-----------




More information about the aarch64-port-dev mailing list