Revision f469b9db

b/target-mips/op.c
928 928

  
929 929
OP_COND(eq, T0 == T1);
930 930
OP_COND(ne, T0 != T1);
931
OP_COND(ge, (int32_t)T0 >= (int32_t)T1);
931
OP_COND(ge, (target_long)T0 >= (target_long)T1);
932 932
OP_COND(geu, T0 >= T1);
933
OP_COND(lt, (int32_t)T0 < (int32_t)T1);
933
OP_COND(lt, (target_long)T0 < (target_long)T1);
934 934
OP_COND(ltu, T0 < T1);
935
OP_COND(gez, (int32_t)T0 >= 0);
936
OP_COND(gtz, (int32_t)T0 > 0);
937
OP_COND(lez, (int32_t)T0 <= 0);
938
OP_COND(ltz, (int32_t)T0 < 0);
935
OP_COND(gez, (target_long)T0 >= 0);
936
OP_COND(gtz, (target_long)T0 > 0);
937
OP_COND(lez, (target_long)T0 <= 0);
938
OP_COND(ltz, (target_long)T0 < 0);
939 939

  
940 940
/* Branches */
941 941
void OPPROTO op_goto_tb0(void)
b/target-mips/translate.c
921 921
static void gen_arith_imm (DisasContext *ctx, uint32_t opc, int rt,
922 922
                           int rs, int16_t imm)
923 923
{
924
    uint32_t uimm;
924
    target_ulong uimm;
925 925
    const char *opn = "imm arith";
926 926

  
927 927
    if (rt == 0 && opc != OPC_ADDI && opc != OPC_DADDI) {
......
941 941
#endif
942 942
    case OPC_SLTI:
943 943
    case OPC_SLTIU:
944
        uimm = (int32_t)imm; /* Sign extend to 32 bits */
944
        uimm = (target_long)imm; /* Sign extend to 32/64 bits */
945 945
        /* Fall through. */
946 946
    case OPC_ANDI:
947 947
    case OPC_ORI:

Also available in: Unified diff