r0 can be allocated for a write and program may decide to read to r0
while we have it alloacted, so *_readstub must be ready for it
reglist&=~(1<<rt);
if(temp==-1) {
save_regs(reglist);
reglist&=~(1<<rt);
if(temp==-1) {
save_regs(reglist);
return;
handler=get_direct_memhandler(mem_rtab,addr,type,&host_addr);
if (handler==0) {
return;
handler=get_direct_memhandler(mem_rtab,addr,type,&host_addr);
if (handler==0) {
return;
if(addr!=host_addr)
emit_movimm_from(addr,rs,host_addr,rs);
return;
if(addr!=host_addr)
emit_movimm_from(addr,rs,host_addr,rs);
reglist&=~(1<<rt);
save_regs(reglist);
if(target==0)
reglist&=~(1<<rt);
save_regs(reglist);
if(target==0)
switch(type) {
case LOADB_STUB: emit_signextend8(0,rt); break;
case LOADBU_STUB: emit_andimm(0,0xff,rt); break;
switch(type) {
case LOADB_STUB: emit_signextend8(0,rt); break;
case LOADBU_STUB: emit_andimm(0,0xff,rt); break;