示例#1
0
 protected internal override bool NeedsBoxRetType(MethodSpec ms)
 {
     if (Opcode.GetCTFromType(ms.ReturnType) == Opcode.ct_vt)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
示例#2
0
        /* Access to variables on the incoming stack is encoded as -address - 1 */
        protected internal override Reg GetLALocation(int la_loc, int la_size, Code c)
        {
            if (Opcode.GetCTFromType(c.ret_ts) == Opcode.ct_vt)
            {
                la_loc += psize;
            }

            return(new ContentsReg
            {
                basereg = r_ebp,
                disp = la_loc + 2 * psize,
                size = la_size
            });
        }
示例#3
0
        /* Access to variables on the incoming stack is encoded as -address - 1 */
        protected internal override Reg GetLVLocation(int lv_loc, int lv_size, Code c)
        {
            if (Opcode.GetCTFromType(c.ret_ts) == Opcode.ct_vt)
            {
                lv_loc += psize;
            }

            int disp = 0;

            disp = -lv_size - lv_loc;
            return(new ContentsReg
            {
                basereg = r_ebp,
                disp = disp,
                size = lv_size
            });
        }