static int verify_dirty(u_int *ptr)
{
- u_int *ptr=(u_int *)addr;
#ifndef HAVE_ARMV7
// get from literal pool
assert((*ptr&0xFFFF0000)==0xe59f0000);
static int isclean(int addr)
{
#ifndef HAVE_ARMV7
- int *ptr=((u_int *)addr)+4;
+ u_int *ptr=((u_int *)addr)+4;
#else
- int *ptr=((u_int *)addr)+6;
+ u_int *ptr=((u_int *)addr)+6;
#endif
if((*ptr&0xFF000000)!=0xeb000000) ptr++;
if((*ptr&0xFF000000)!=0xeb000000) return 1; // bl instruction
{
u_int ret=genimm(imm,encoded);
assert(ret);
+ (void)ret;
}
static u_int genjmp(u_int addr)
struct regstat *i_regs=(struct regstat *)stubs[n][5];
u_int reglist=stubs[n][7];
signed char *i_regmap=i_regs->regmap;
- int addr=get_reg(i_regmap,AGEN1+(i&1));
- int rth,rt;
- int ds;
+ int rt;
if(itype[i]==C1LS||itype[i]==C2LS||itype[i]==LOADLR) {
- rth=get_reg(i_regmap,FTEMP|64);
rt=get_reg(i_regmap,FTEMP);
}else{
- rth=get_reg(i_regmap,rt1[i]|64);
rt=get_reg(i_regmap,rt1[i]);
}
assert(rs>=0);
static void inline_readstub(int type, int i, u_int addr, signed char regmap[], int target, int adj, u_int reglist)
{
int rs=get_reg(regmap,target);
- int rth=get_reg(regmap,target|64);
int rt=get_reg(regmap,target);
if(rs<0) rs=get_reg(regmap,-1);
assert(rs>=0);
struct regstat *i_regs=(struct regstat *)stubs[n][5];
u_int reglist=stubs[n][7];
signed char *i_regmap=i_regs->regmap;
- int addr=get_reg(i_regmap,AGEN1+(i&1));
- int rth,rt,r;
- int ds;
+ int rt,r;
if(itype[i]==C1LS||itype[i]==C2LS) {
- rth=get_reg(i_regmap,FTEMP|64);
rt=get_reg(i_regmap,r=FTEMP);
}else{
- rth=get_reg(i_regmap,rs2[i]|64);
rt=get_reg(i_regmap,r=rs2[i]);
}
assert(rs>=0);
static void inline_writestub(int type, int i, u_int addr, signed char regmap[], int target, int adj, u_int reglist)
{
int rs=get_reg(regmap,-1);
- int rth=get_reg(regmap,target|64);
int rt=get_reg(regmap,target);
assert(rs>=0);
assert(rt>=0);
signed char *i_regmap=i_regs->regmap;
int temp2=get_reg(i_regmap,FTEMP);
int rt;
- int ds, real_rs;
rt=get_reg(i_regmap,rs2[i]);
assert(rt>=0);
assert(addr>=0);
static int emit_fastpath_cmp_jump(int i,int addr,int *addr_reg_override)
{
- int jaddr,type=0;
+ int jaddr=0,type=0;
int mr=rs1[i];
if(((smrv_strong|smrv_weak)>>mr)&1) {
type=get_ptr_mem_type(smrv[mr]);
static void c2op_assemble(int i,struct regstat *i_regs)
{
- signed char temp=get_reg(i_regs->regmap,-1);
u_int c2op=source[i]&0x3f;
u_int hr,reglist_full=0,reglist;
int need_flags,need_ir;
static void wb_valid(signed char pre[],signed char entry[],u_int dirty_pre,u_int dirty,uint64_t is32_pre,uint64_t u,uint64_t uu)
{
//if(dirty_pre==dirty) return;
- int hr,reg,new_hr;
+ int hr,reg;
for(hr=0;hr<HOST_REGS;hr++) {
if(hr!=EXCLUDE_REG) {
reg=pre[hr];