Browse Prior Art Database

An Efficient Frame Traversing Method on IA-64 Processor Disclosure Number: IPCOM000015267D
Original Publication Date: 2001-Oct-22
Included in the Prior Art Database: 2003-Jun-20

Publishing Venue



Disclosed is a mechanism to traverse execution frames efficiently on an IA-64 processor. Codes dynamically generated by Just-In-Time compiler (JITed codes) can adopt different calling convention from IA-64's original one [1] by absorbing the difference in gate codes between the JITed codes and original-convention codes.. JITed codes use a new convention in which information necessary for frame traversing are stored into fixed position in a frame. In the new convention, frame traversing can be done without referencing tables which indicate positions where such information are stored. Followings are more concrete example. JITed codes receive arguments through registers from in2 instead of in0 in original convention. JITed codes use registers in0 and in1 to store b0 and ar.pfs, which are necessary for traversing execution frames. The following example shows assembly dump of two JITed codes jitedA and jitedB. The jitedA calls the jitedB (line 07), and the jitedB calls the frame traverser (line 17). The jitedA puts two arguments to the jitedB on out2 and out3 (lines 05 and 06), which are accessed as in2 and in3 in the jitedB. The jitedB uses registers in0 and in1 to store b0 and ar.pfs (lines 15 and 14). 01: jitedA: (arg1,arg2,arg3) in=r32-36,loc=r37-38,out=r39-42 02: alloc in1=ar.pfs,5,2,4,0 store ar.pfs to in1(r33)