Revision fe57ca82

b/hw/alpha_palcode.c
1061 1061
    target_long ret;
1062 1062

  
1063 1063
    switch (palcode) {
1064
    case 0x80:
1065
        /* BPT */
1066
        qemu_log("BPT\n");
1067
        /* FIXME: Sends SIGTRAP, si_code=TRAP_BRKPT.  */
1068
        exit(1);
1069
    case 0x81:
1070
        /* BUGCHK */
1071
        qemu_log("BUGCHK\n");
1072
        /* FIXME: Sends SIGTRAP, si_code=SI_FAULT.  */
1073
        exit(1);
1064 1074
    case 0x83:
1065 1075
        /* CALLSYS */
1066 1076
        qemu_log("CALLSYS n " TARGET_FMT_ld "\n", env->ir[0]);
......
1075 1085
            env->ir[IR_V0] = -ret;
1076 1086
        }
1077 1087
        break;
1088
    case 0x86:
1089
        /* IMB */
1090
        qemu_log("IMB\n");
1091
        /* ??? We can probably elide the code using page_unprotect that is
1092
           checking for self-modifying code.  Instead we could simply call
1093
           tb_flush here.  Until we work out the changes required to turn
1094
           off the extra write protection, this can be a no-op.  */
1095
        break;
1078 1096
    case 0x9E:
1079 1097
        /* RDUNIQUE */
1080 1098
        qemu_log("RDUNIQUE: " TARGET_FMT_lx "\n", env->unique);
......
1085 1103
        qemu_log("WRUNIQUE: " TARGET_FMT_lx "\n", env->ir[IR_A0]);
1086 1104
        /* Handled in the translator for usermode.  */
1087 1105
        abort();
1106
    case 0xAA:
1107
        /* GENTRAP */
1108
        qemu_log("GENTRAP: " TARGET_FMT_lx "\n", env->ir[IR_A0]);
1109
        /* FIXME: This is supposed to send a signal:
1110
           SIGFPE:
1111
             GEN_INTOVF, GEN_INTDIV, GEN_FLTOVF, GEN_FLTDIV,
1112
             GEN_FLTUND, GEN_FLTINV, GEN_FLTINE, GEN_ROPRAND
1113
           SIGTRAP:
1114
             others
1115
           with various settings of si_code.  */
1116
        exit(1);
1088 1117
    default:
1089
        qemu_log("%s: unhandled palcode %02x\n",
1090
                    __func__, palcode);
1118
        qemu_log("%s: unhandled palcode %02x\n", __func__, palcode);
1091 1119
        exit(1);
1092 1120
    }
1093 1121
}

Also available in: Unified diff