--- trunk/src/cpus/generate_arm_loadstore.c 2007/10/08 16:19:28 21 +++ trunk/src/cpus/generate_arm_loadstore.c 2007/10/08 16:19:37 22 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005 Anders Gavare. All rights reserved. + * Copyright (C) 2005-2006 Anders Gavare. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: generate_arm_loadstore.c,v 1.4 2005/10/22 12:22:14 debug Exp $ + * $Id: generate_arm_loadstore.c,v 1.6 2006/02/16 19:49:04 debug Exp $ */ #include @@ -44,12 +44,14 @@ "#include \"machine.h\"\n" "#include \"memory.h\"\n" "#include \"misc.h\"\n" - "#include \"arm_quick_pc_to_pointers.h\"\n" + "#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers\n" + "#include \"quick_pc_to_pointers.h\"\n" "#define reg(x) (*((uint32_t *)(x)))\n"); printf("extern void arm_instr_nop(struct cpu *, " "struct arm_instr_call *);\n"); printf("extern void arm_instr_invalid(struct cpu *, " "struct arm_instr_call *);\n"); + printf("extern void arm_pc_to_pointers(struct cpu *);\n"); for (reg=0; reg<=1; reg++) for (p=0; p<=1; p++) @@ -179,8 +181,7 @@ for (l=0; l<=1; l++) { if (s==0 && h==0) continue; - if (l==0 && s==1 && h==0) - continue; + /* l=0, s=1, h=0 means LDRD */ /* l=0, s=1, h=1 means STRD */ printf("#define A__NAME__general arm_instr_%s_" @@ -257,8 +258,6 @@ printf("\tarm_instr_nop"); else if (s==0 && h==0) printf("\tarm_instr_invalid"); - else if (l==0 && s==1 && h==0) - printf("\tarm_instr_invalid"); else printf("\tarm_instr_%s_%s_%s_%s_%s_%s_%s%s%s", l? "load" : "store", @@ -292,8 +291,6 @@ printf("\tarm_instr_nop"); else if (s==0 && h==0) printf("\tarm_instr_invalid"); - else if (l==0 && s==1 && h==0) - printf("\tarm_instr_invalid"); else printf("\tarm_instr_%s_%s_%s_%s_%s_%s_" "%s_pc%s%s", l? "load" : "store",