| Index: test/cctest/test-disasm-mips64.cc
 | 
| diff --git a/test/cctest/test-disasm-mips64.cc b/test/cctest/test-disasm-mips64.cc
 | 
| index 115a99cbff53fa75ea6ff840fea39a53ffe1556d..8a1e0e7db0621cfd532c59cb0e0e6c875bea42f6 100644
 | 
| --- a/test/cctest/test-disasm-mips64.cc
 | 
| +++ b/test/cctest/test-disasm-mips64.cc
 | 
| @@ -38,12 +38,18 @@
 | 
|  
 | 
|  using namespace v8::internal;
 | 
|  
 | 
| +bool prev_instr_compact_branch = false;
 | 
|  
 | 
|  bool DisassembleAndCompare(byte* pc, const char* compare_string) {
 | 
|    disasm::NameConverter converter;
 | 
|    disasm::Disassembler disasm(converter);
 | 
|    EmbeddedVector<char, 128> disasm_buffer;
 | 
|  
 | 
| +  if (prev_instr_compact_branch) {
 | 
| +    disasm.InstructionDecode(disasm_buffer, pc);
 | 
| +    pc += 4;
 | 
| +  }
 | 
| +
 | 
|    disasm.InstructionDecode(disasm_buffer, pc);
 | 
|  
 | 
|    if (strcmp(compare_string, disasm_buffer.start()) != 0) {
 | 
| @@ -97,8 +103,14 @@ if (failure) { \
 | 
|      int pc_offset = assm.pc_offset();                                          \
 | 
|      byte *progcounter = &buffer[pc_offset];                                    \
 | 
|      char str_with_address[100];                                                \
 | 
| -    snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",           \
 | 
| -             compare_string, progcounter + 4 + (offset * 4));                  \
 | 
| +    prev_instr_compact_branch = assm.IsPrevInstrCompactBranch();               \
 | 
| +    if (prev_instr_compact_branch) {                                           \
 | 
| +      snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",         \
 | 
| +               compare_string, progcounter + 8 + (offset * 4));                \
 | 
| +    } else {                                                                   \
 | 
| +      snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",         \
 | 
| +               compare_string, progcounter + 4 + (offset * 4));                \
 | 
| +    }                                                                          \
 | 
|      assm.asm_;                                                                 \
 | 
|      if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \
 | 
|    }
 | 
| @@ -770,14 +782,6 @@ TEST(Type0) {
 | 
|    }
 | 
|  
 | 
|    if (kArchVariant == kMips64r6) {
 | 
| -    COMPARE_PC_REL_COMPACT(beqzc(a0, 16), "d8800010       beqzc   a0, 0x10",
 | 
| -                           16);
 | 
| -    COMPARE_PC_REL_COMPACT(beqzc(a0, 4), "d8800004       beqzc   a0, 0x4", 4);
 | 
| -    COMPARE_PC_REL_COMPACT(beqzc(a0, -32),
 | 
| -                           "d89fffe0       beqzc   a0, 0x1fffe0", -32);
 | 
| -  }
 | 
| -
 | 
| -  if (kArchVariant == kMips64r6) {
 | 
|      COMPARE(ldpc(v0, 256), "ec580100       ldpc    v0, 256");
 | 
|      COMPARE(ldpc(a0, -1), "ec9bffff       ldpc    a0, -1");
 | 
|      COMPARE(ldpc(a1, 0), "ecb80000       ldpc    a1, 0");
 | 
| @@ -792,11 +796,11 @@ TEST(Type0) {
 | 
|    }
 | 
|  
 | 
|    if (kArchVariant == kMips64r6) {
 | 
| -    COMPARE(jialc(a0, -32768), "f8048000       jialc   a0, 0x8000");
 | 
| -    COMPARE(jialc(a0, -1), "f804ffff       jialc   a0, 0xffff");
 | 
| -    COMPARE(jialc(v0, 0), "f8020000       jialc   v0, 0x0");
 | 
| -    COMPARE(jialc(s1, 1), "f8110001       jialc   s1, 0x1");
 | 
| -    COMPARE(jialc(a0, 32767), "f8047fff       jialc   a0, 0x7fff");
 | 
| +    COMPARE(jialc(a0, -32768), "f8048000       jialc   a0, -32768");
 | 
| +    COMPARE(jialc(a0, -1), "f804ffff       jialc   a0, -1");
 | 
| +    COMPARE(jialc(v0, 0), "f8020000       jialc   v0, 0");
 | 
| +    COMPARE(jialc(s1, 1), "f8110001       jialc   s1, 1");
 | 
| +    COMPARE(jialc(a0, 32767), "f8047fff       jialc   a0, 32767");
 | 
|    }
 | 
|  
 | 
|    VERIFY_RUN();
 | 
| @@ -929,17 +933,17 @@ TEST(Type3) {
 | 
|      COMPARE_PC_REL_COMPACT(bnvc(a1, a0, -32768),
 | 
|                             "60a48000       bnvc  a1, a0, -32768", -32768);
 | 
|  
 | 
| -    COMPARE_PC_REL_COMPACT(beqzc(a0, 0), "d8800000       beqzc   a0, 0x0", 0);
 | 
| -    COMPARE_PC_REL_COMPACT(beqzc(a0, 0xfffff),  // 0x0fffff ==  1048575.
 | 
| -                           "d88fffff       beqzc   a0, 0xfffff", 1048575);
 | 
| -    COMPARE_PC_REL_COMPACT(beqzc(a0, 0x100000),  // 0x100000 == -1048576.
 | 
| -                           "d8900000       beqzc   a0, 0x100000", -1048576);
 | 
| +    COMPARE_PC_REL_COMPACT(beqzc(a0, 0), "d8800000       beqzc   a0, 0", 0);
 | 
| +    COMPARE_PC_REL_COMPACT(beqzc(a0, 1048575),  // 0x0fffff ==  1048575.
 | 
| +                           "d88fffff       beqzc   a0, 1048575", 1048575);
 | 
| +    COMPARE_PC_REL_COMPACT(beqzc(a0, -1048576),  // 0x100000 == -1048576.
 | 
| +                           "d8900000       beqzc   a0, -1048576", -1048576);
 | 
|  
 | 
| -    COMPARE_PC_REL_COMPACT(bnezc(a0, 0), "f8800000       bnezc   a0, 0x0", 0);
 | 
| -    COMPARE_PC_REL_COMPACT(bnezc(a0, 0xfffff),  // 0x0fffff ==  1048575.
 | 
| -                           "f88fffff       bnezc   a0, 0xfffff", 1048575);
 | 
| -    COMPARE_PC_REL_COMPACT(bnezc(a0, 0x100000),  // 0x100000 == -1048576.
 | 
| -                           "f8900000       bnezc   a0, 0x100000", -1048576);
 | 
| +    COMPARE_PC_REL_COMPACT(bnezc(a0, 0), "f8800000       bnezc   a0, 0", 0);
 | 
| +    COMPARE_PC_REL_COMPACT(bnezc(a0, 1048575),  // int21 maximal value.
 | 
| +                           "f88fffff       bnezc   a0, 1048575", 1048575);
 | 
| +    COMPARE_PC_REL_COMPACT(bnezc(a0, -1048576),  // int21 minimal value.
 | 
| +                           "f8900000       bnezc   a0, -1048576", -1048576);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(bc(-33554432), "ca000000       bc      -33554432",
 | 
|                             -33554432);
 | 
| @@ -958,29 +962,29 @@ TEST(Type3) {
 | 
|                             33554431);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(bgeuc(a0, a1, -32768),
 | 
| -                           "18858000       bgeuc    a0, a1, -32768", -32768);
 | 
| +                           "18858000       bgeuc   a0, a1, -32768", -32768);
 | 
|      COMPARE_PC_REL_COMPACT(bgeuc(a0, a1, -1),
 | 
| -                           "1885ffff       bgeuc    a0, a1, -1", -1);
 | 
| -    COMPARE_PC_REL_COMPACT(bgeuc(a0, a1, 1),
 | 
| -                           "18850001       bgeuc    a0, a1, 1", 1);
 | 
| +                           "1885ffff       bgeuc   a0, a1, -1", -1);
 | 
| +    COMPARE_PC_REL_COMPACT(bgeuc(a0, a1, 1), "18850001       bgeuc   a0, a1, 1",
 | 
| +                           1);
 | 
|      COMPARE_PC_REL_COMPACT(bgeuc(a0, a1, 32767),
 | 
| -                           "18857fff       bgeuc    a0, a1, 32767", 32767);
 | 
| +                           "18857fff       bgeuc   a0, a1, 32767", 32767);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(bgezalc(a0, -32768),
 | 
| -                           "18848000       bgezalc  a0, -32768", -32768);
 | 
| -    COMPARE_PC_REL_COMPACT(bgezalc(a0, -1), "1884ffff       bgezalc  a0, -1",
 | 
| +                           "18848000       bgezalc a0, -32768", -32768);
 | 
| +    COMPARE_PC_REL_COMPACT(bgezalc(a0, -1), "1884ffff       bgezalc a0, -1",
 | 
|                             -1);
 | 
| -    COMPARE_PC_REL_COMPACT(bgezalc(a0, 1), "18840001       bgezalc  a0, 1", 1);
 | 
| +    COMPARE_PC_REL_COMPACT(bgezalc(a0, 1), "18840001       bgezalc a0, 1", 1);
 | 
|      COMPARE_PC_REL_COMPACT(bgezalc(a0, 32767),
 | 
| -                           "18847fff       bgezalc  a0, 32767", 32767);
 | 
| +                           "18847fff       bgezalc a0, 32767", 32767);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(blezalc(a0, -32768),
 | 
| -                           "18048000       blezalc  a0, -32768", -32768);
 | 
| -    COMPARE_PC_REL_COMPACT(blezalc(a0, -1), "1804ffff       blezalc  a0, -1",
 | 
| +                           "18048000       blezalc a0, -32768", -32768);
 | 
| +    COMPARE_PC_REL_COMPACT(blezalc(a0, -1), "1804ffff       blezalc a0, -1",
 | 
|                             -1);
 | 
| -    COMPARE_PC_REL_COMPACT(blezalc(a0, 1), "18040001       blezalc  a0, 1", 1);
 | 
| +    COMPARE_PC_REL_COMPACT(blezalc(a0, 1), "18040001       blezalc a0, 1", 1);
 | 
|      COMPARE_PC_REL_COMPACT(blezalc(a0, 32767),
 | 
| -                           "18047fff       blezalc  a0, 32767", 32767);
 | 
| +                           "18047fff       blezalc a0, 32767", 32767);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(bltuc(a0, a1, -32768),
 | 
|                             "1c858000       bltuc   a0, a1, -32768", -32768);
 | 
| @@ -1038,13 +1042,13 @@ TEST(Type3) {
 | 
|                             "5c847fff       bltzc    a0, 32767", 32767);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(bltc(a0, a1, -32768),
 | 
| -                           "5c858000       bltc     a0, a1, -32768", -32768);
 | 
| +                           "5c858000       bltc    a0, a1, -32768", -32768);
 | 
|      COMPARE_PC_REL_COMPACT(bltc(a0, a1, -1),
 | 
| -                           "5c85ffff       bltc     a0, a1, -1", -1);
 | 
| -    COMPARE_PC_REL_COMPACT(bltc(a0, a1, 1), "5c850001       bltc     a0, a1, 1",
 | 
| +                           "5c85ffff       bltc    a0, a1, -1", -1);
 | 
| +    COMPARE_PC_REL_COMPACT(bltc(a0, a1, 1), "5c850001       bltc    a0, a1, 1",
 | 
|                             1);
 | 
|      COMPARE_PC_REL_COMPACT(bltc(a0, a1, 32767),
 | 
| -                           "5c857fff       bltc     a0, a1, 32767", 32767);
 | 
| +                           "5c857fff       bltc    a0, a1, 32767", 32767);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(bgtzc(a0, -32768),
 | 
|                             "5c048000       bgtzc    a0, -32768", -32768);
 | 
| @@ -1075,13 +1079,13 @@ TEST(Type3) {
 | 
|                             1);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(beqc(a0, a1, -32768),
 | 
| -                           "20858000       beqc  a0, a1, -32768", -32768);
 | 
| -    COMPARE_PC_REL_COMPACT(beqc(a0, a1, -1), "2085ffff       beqc  a0, a1, -1",
 | 
| -                           -1);
 | 
| -    COMPARE_PC_REL_COMPACT(beqc(a0, a1, 1), "20850001       beqc  a0, a1, 1",
 | 
| +                           "20858000       beqc    a0, a1, -32768", -32768);
 | 
| +    COMPARE_PC_REL_COMPACT(beqc(a0, a1, -1),
 | 
| +                           "2085ffff       beqc    a0, a1, -1", -1);
 | 
| +    COMPARE_PC_REL_COMPACT(beqc(a0, a1, 1), "20850001       beqc    a0, a1, 1",
 | 
|                             1);
 | 
|      COMPARE_PC_REL_COMPACT(beqc(a0, a1, 32767),
 | 
| -                           "20857fff       beqc  a0, a1, 32767", 32767);
 | 
| +                           "20857fff       beqc    a0, a1, 32767", 32767);
 | 
|  
 | 
|      COMPARE_PC_REL_COMPACT(bnec(a0, a1, -32768),
 | 
|                             "60858000       bnec  a0, a1, -32768", -32768);
 | 
| 
 |