From 2ef5e2a15876757b8742f5d80f9b50adc96ab774 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sat, 4 Sep 1999 17:18:59 +0000 Subject: [PATCH] 1999-09-04 Steve Chamberlain * gas/pj/{pj.exp, ops.c, ops.d}: New tests for picoJava. --- gas/testsuite/ChangeLog | 4 + gas/testsuite/gas/pj/ops.d | 407 ++++++++++++++++++++++++++++++++++++ gas/testsuite/gas/pj/ops.s | 397 +++++++++++++++++++++++++++++++++++ gas/testsuite/gas/pj/pj.exp | 7 + 4 files changed, 815 insertions(+) create mode 100644 gas/testsuite/gas/pj/ops.d create mode 100644 gas/testsuite/gas/pj/ops.s create mode 100644 gas/testsuite/gas/pj/pj.exp diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index ed8b0e74c5..2bf0b6f357 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,7 @@ +1999-09-04 Steve Chamberlain + + * gas/pj/{pj.exp, ops.c, ops.d}: New tests for picoJava. + 1999-09-02 Nick Clifton * gas/vtable/vtable.exp: Add [istarget "strongarm*-*-*"] to run diff --git a/gas/testsuite/gas/pj/ops.d b/gas/testsuite/gas/pj/ops.d new file mode 100644 index 0000000000..a94e3660fe --- /dev/null +++ b/gas/testsuite/gas/pj/ops.d @@ -0,0 +1,407 @@ +#objdump: -dr +#name: pj +#as + +# test all the instructions + +.*: +file format elf32-pj. + +Disassembly of section .text: + +00000000 : + ... + +00000001 : + ... + +00000002 : + ... + +00000003 : + ... + +00000004 : + ... + +00000005 : + ... + +00000006 : + ... + +00000007 : + ... + +00000008 : + ... + +00000009 : + ... + +0000000a : + ... + +0000000b : + ... + +0000000c : + ... + +0000000d : + ... + +0000000e : + ... + +0000000f : + ... + +00000010 : + ... + +00000011 : + ... + +00000012 : + ... + +00000013 : + ... + +00000014 : + 14: 00 nop + 15: 01 aconst_null + 16: 02 iconst_m1 + 17: 03 iconst_0 + 18: 04 iconst_1 + 19: 05 iconst_2 + 1a: 06 iconst_3 + 1b: 07 iconst_4 + 1c: 08 iconst_5 + 1d: 09 lconst_0 + 1e: 0a lconst_1 + 1f: 0b fconst_0 + 20: 0c fconst_1 + 21: 0d fconst_2 + 22: 0e dconst_0 + 23: 0f dconst_1 + 24: 10 e7 bipush -25 + 26: 11 a3 c6 sipush -23610 + 29: 12 00 ldc + 2b: 13 00 00 ldc_w + 2e: 14 00 00 ldc2_w + 31: 15 69 iload 105 + 33: 16 73 lload 115 + 35: 17 51 fload 81 + 37: 18 ff dload 255 + 39: 19 4a aload 74 + 3b: 1a iload_0 + 3c: 1b iload_1 + 3d: 1c iload_2 + 3e: 1d iload_3 + 3f: 1e lload_0 + 40: 1f lload_1 + 41: 20 lload_2 + 42: 21 lload_3 + 43: 22 fload_0 + 44: 23 fload_1 + 45: 24 fload_2 + 46: 25 fload_3 + 47: 26 dload_0 + 48: 27 dload_1 + 49: 28 dload_2 + 4a: 29 dload_3 + 4b: 2a aload_0 + 4c: 2b aload_1 + 4d: 2c aload_2 + 4e: 2d aload_3 + 4f: 2e iaload + 50: 2f laload + 51: 30 faload + 52: 31 daload + 53: 32 aaload + 54: 33 baload + 55: 34 caload + 56: 35 saload + 57: 36 ec istore 236 + 59: 37 29 lstore 41 + 5b: 38 cd fstore 205 + 5d: 39 ba dstore 186 + 5f: 3a ab astore 171 + 61: 3b istore_0 + 62: 3c istore_1 + 63: 3d istore_2 + 64: 3e istore_3 + 65: 3f lstore_0 + 66: 40 lstore_1 + 67: 41 lstore_2 + 68: 42 lstore_3 + 69: 43 fstore_0 + 6a: 44 fstore_1 + 6b: 45 fstore_2 + 6c: 46 fstore_3 + 6d: 47 dstore_0 + 6e: 48 dstore_1 + 6f: 49 dstore_2 + 70: 4a dstore_3 + 71: 4b astore_0 + 72: 4c astore_1 + 73: 4d astore_2 + 74: 4e astore_3 + 75: 4f iastore + 76: 50 lastore + 77: 51 fastore + 78: 52 dastore + 79: 53 aastore + 7a: 54 bastore + 7b: 55 castore + 7c: 56 sastore + 7d: 57 pop + 7e: 58 pop2 + 7f: 59 dup + 80: 5a dup_x1 + 81: 5b dup_x2 + 82: 5c dup2 + 83: 5d dup2_x1 + 84: 5e dup2_x2 + 85: 5f swap + 86: 60 iadd + 87: 61 ladd + 88: 62 fadd + 89: 63 dadd + 8a: 64 isub + 8b: 65 lsub + 8c: 66 fsub + 8d: 67 dsub + 8e: 68 imul + 8f: 69 lmul + 90: 6a fmul + 91: 6b dmul + 92: 6c idiv + 93: 6d ldiv + 94: 6e fdiv + 95: 6f ddiv + 96: 70 irem + 97: 71 lrem + 98: 72 frem + 99: 73 drem + 9a: 74 ineg + 9b: 75 lneg + 9c: 76 fneg + 9d: 77 dneg + 9e: 78 ishl + 9f: 79 lshl + a0: 7a ishr + a1: 7b lshr + a2: 7c iushr + a3: 7d lushr + a4: 7e iand + a5: 7f land + a6: 80 ior + a7: 81 lor + a8: 82 ixor + a9: 83 lxor + aa: 84 f2 7b iinc 242,123 + ad: 85 i2l + ae: 86 i2f + af: 87 i2d + b0: 88 l2i + b1: 89 l2f + b2: 8a l2d + b3: 8b f2i + b4: 8c f2l + b5: 8d f2d + b6: 8e d2i + b7: 8f d2l + b8: 90 d2f + b9: 91 i2b + ba: 92 i2c + bb: 93 i2s + bc: 94 lcmp + bd: 95 fcmpl + be: 96 fcmpg + bf: 97 dcmpl + c0: 98 dcmpg + c1: 99 ff 41 ifeq2 + c4: 9a ff 47 ifneb + c7: 9b ff 41 iflt8 + ca: 9c ff 48 ifge12 + cd: 9d ff 39 ifgt6 + d0: 9e ff 3a iflea + d3: 9f ff 38 if_icmpeqb + d6: a0 ff 3a if_icmpne10 + d9: a1 ff 30 if_icmplt9 + dc: a2 ff 31 if_icmpged + df: a3 ff 29 if_icmpgt8 + e2: a4 ff 2b if_icmpled + e5: a5 ff 22 if_acmpeq7 + e8: a6 ff 20 if_acmpne8 + eb: a7 ff 1b goto6 + ee: a8 00 00 jsr + f1: a9 00 ret + f3: aa ff ff ff tableswitch default: .* + f7: 0f 00 00 00 + fb: 01 00 00 00 + ff: 05 ff ff ff + 103: 14 ff ff ff + 107: 12 ff ff ff + 10b: 1f ff ff ff + 10f: 14 ff ff ff + 113: 12 + 114: ab 00 00 00 lookupswitch default: .* + 118: ff ff fe f2 + 11c: 00 00 00 02 + 120: 00 00 00 07 + 124: ff ff fe fb + 128: 00 00 00 25 + 12c: ff ff fe fc + 130: ac ireturn + 131: ad lreturn + 132: ae freturn + 133: af dreturn + 134: b0 areturn + 135: b1 return + 136: b2 00 00 getstatic + 139: b3 00 00 putstatic + 13c: b4 00 00 getfield + 13f: b5 00 00 putfield + 142: b6 00 00 invokevirtual + 145: b7 00 00 invokespecial + 148: b8 00 00 invokestatic + 14b: b9 00 00 00 invokeinterface + 14f: 00 + 150: bb 00 00 new + 153: bc 00 newarray + 155: bd 00 00 anewarray + 158: be arraylength + 159: bf athrow + 15a: c0 00 00 checkcast + 15d: c1 00 00 instanceof + 160: c2 monitorenter + 161: c3 monitorexit + 162: c4 wide + 163: c5 00 00 00 multianewarray + 167: c6 00 00 ifnull + 16a: c7 00 00 ifnonnull + 16d: c8 00 00 00 goto_w + 171: 00 + 172: c9 00 00 00 jsr_w + 176: 00 + 177: ca breakpoint + 178: cb bytecode + 179: cc try + 17a: cd endtry + 17b: ce catch + 17c: cf var + 17d: d0 endvar + 17e: ed b0 a3 sethi -20317 + 181: ee 5a a5 load_word_index 90,165 + 184: ef 5d 85 load_short_index 93,133 + 187: f0 17 d8 load_char_index 23,216 + 18a: f1 e9 de load_byte_index 233,222 + 18d: f2 d4 2b load_ubyte_index 212,43 + 190: f3 b2 4d store_word_index 178,77 + 193: f4 c6 1b na_store_word_index 198,27 + 196: f5 b4 d4 store_short_index 180,212 + 199: f6 11 8e store_byte_index 17,142 + 19c: ff 00 load_ubyte + 19e: ff 01 load_byte + 1a0: ff 02 load_char + 1a2: ff 03 load_short + 1a4: ff 04 load_word + 1a6: ff 05 priv_ret_from_trap + 1a8: ff 06 priv_read_dcache_tag + 1aa: ff 07 priv_read_dcache_data + 1ac: ff 0a load_char_oe + 1ae: ff 0b load_short_oe + 1b0: ff 0c load_word_oe + 1b2: ff 0d return0 + 1b4: ff 0e priv_read_icache_tag + 1b6: ff 0f priv_read_icache_data + 1b8: ff 10 ncload_ubyte + 1ba: ff 11 ncload_byte + 1bc: ff 12 ncload_char + 1be: ff 13 ncload_short + 1c0: ff 14 ncload_word + 1c2: ff 15 iucmp + 1c4: ff 16 priv_powerdown + 1c6: ff 17 cache_invalidate + 1c8: ff 1a ncload_char_oe + 1ca: ff 1b ncload_short_oe + 1cc: ff 1c ncload_word_oe + 1ce: ff 1d return1 + 1d0: ff 1e cache_flush + 1d2: ff 1f cache_index_flush + 1d4: ff 20 store_byte + 1d6: ff 22 store_short + 1d8: ff 24 store_word + 1da: ff 25 soft_trap + 1dc: ff 26 priv_write_dcache_tag + 1de: ff 27 priv_write_dcache_data + 1e0: ff 2a store_short_oe + 1e2: ff 2c store_word_oe + 1e4: ff 2d return2 + 1e6: ff 2e priv_write_icache_tag + 1e8: ff 2f priv_write_icache_data + 1ea: ff 30 ncstore_byte + 1ec: ff 32 ncstore_short + 1ee: ff 34 ncstore_word + 1f0: ff 36 priv_reset + 1f2: ff 37 get_current_class + 1f4: ff 3a ncstore_short_oe + 1f6: ff 3c ncstore_word_oe + 1f8: ff 3d call + 1fa: ff 3e zero_line + 1fc: ff 3f priv_update_optop + 1fe: ff 40 read_pc + 200: ff 41 read_vars + 202: ff 42 read_frame + 204: ff 43 read_optop + 206: ff 44 priv_read_oplim + 208: ff 45 read_const_pool + 20a: ff 46 priv_read_psr + 20c: ff 47 priv_read_trapbase + 20e: ff 48 priv_read_lockcount0 + 210: ff 49 priv_read_lockcount1 + 212: ff 4c priv_read_lockaddr0 + 214: ff 4d priv_read_lockaddr1 + 216: ff 50 priv_read_userrange1 + 218: ff 51 priv_read_gc_config + 21a: ff 52 priv_read_brk1a + 21c: ff 53 priv_read_brk2a + 21e: ff 54 priv_read_brk12c + 220: ff 55 priv_read_userrange2 + 222: ff 57 priv_read_versionid + 224: ff 58 priv_read_hcr + 226: ff 59 priv_read_sc_bottom + 228: ff 5a read_global0 + 22a: ff 5b read_global1 + 22c: ff 5c read_global2 + 22e: ff 5d read_global3 + 230: ff 60 write_pc + 232: ff 61 write_vars + 234: ff 62 write_frame + 236: ff 63 write_optop + 238: ff 64 priv_write_oplim + 23a: ff 65 write_const_pool + 23c: ff 66 priv_write_psr + 23e: ff 67 priv_write_trapbase + 240: ff 68 priv_write_lockcount0 + 242: ff 69 priv_write_lockcount1 + 244: ff 6c priv_write_lockaddr0 + 246: ff 6d priv_write_lockaddr1 + 248: ff 70 priv_write_userrange1 + 24a: ff 71 priv_write_gc_config + 24c: ff 72 priv_write_brk1a + 24e: ff 73 priv_write_brk2a + 250: ff 74 priv_write_brk12c + 252: ff 75 priv_write_userrange2 + 254: ff 79 priv_write_sc_bottom + 256: ff 7a write_global0 + 258: ff 7b write_global1 + 25a: ff 7c write_global2 + 25c: ff 7d write_global3 + 25e: ff ae tm_putchar + 260: ff af tm_exit + 262: ff b0 tm_trap + 264: ff b1 tm_minfo diff --git a/gas/testsuite/gas/pj/ops.s b/gas/testsuite/gas/pj/ops.s new file mode 100644 index 0000000000..7c8109b40a --- /dev/null +++ b/gas/testsuite/gas/pj/ops.s @@ -0,0 +1,397 @@ +.L0: nop +.globl foo0 +foo0: +.L1: nop +.globl foo1 +foo1: +.L2: nop +.globl foo2 +foo2: +.L3: nop +.globl foo3 +foo3: +.L4: nop +.globl foo4 +foo4: +.L5: nop +.globl foo5 +foo5: +.L6: nop +.globl foo6 +foo6: +.L7: nop +.globl foo7 +foo7: +.L8: nop +.globl foo8 +foo8: +.L9: nop +.globl foo9 +foo9: +.L10: nop +.globl foo10 +foo10: +.L11: nop +.globl foo11 +foo11: +.L12: nop +.globl foo12 +foo12: +.L13: nop +.globl foo13 +foo13: +.L14: nop +.globl foo14 +foo14: +.L15: nop +.globl foo15 +foo15: +.L16: nop +.globl foo16 +foo16: +.L17: nop +.globl foo17 +foo17: +.L18: nop +.globl foo18 +foo18: +.L19: nop +.globl foo19 +foo19: + nop + aconst_null + iconst_m1 + iconst_0 + iconst_1 + iconst_2 + iconst_3 + iconst_4 + iconst_5 + lconst_0 + lconst_1 + fconst_0 + fconst_1 + fconst_2 + dconst_0 + dconst_1 + bipush -25 + sipush -23610 + ldc + ldc_w + ldc2_w + iload 105 + lload 115 + fload 81 + dload 255 + aload 74 + iload_0 + iload_1 + iload_2 + iload_3 + lload_0 + lload_1 + lload_2 + lload_3 + fload_0 + fload_1 + fload_2 + fload_3 + dload_0 + dload_1 + dload_2 + dload_3 + aload_0 + aload_1 + aload_2 + aload_3 + iaload + laload + faload + daload + aaload + baload + caload + saload + istore 236 + lstore 41 + fstore 205 + dstore 186 + astore 171 + istore_0 + istore_1 + istore_2 + istore_3 + lstore_0 + lstore_1 + lstore_2 + lstore_3 + fstore_0 + fstore_1 + fstore_2 + fstore_3 + dstore_0 + dstore_1 + dstore_2 + dstore_3 + astore_0 + astore_1 + astore_2 + astore_3 + iastore + lastore + fastore + dastore + aastore + bastore + castore + sastore + pop + pop2 + dup + dup_x1 + dup_x2 + dup2 + dup2_x1 + dup2_x2 + swap + iadd + ladd + fadd + dadd + isub + lsub + fsub + dsub + imul + lmul + fmul + dmul + idiv + ldiv + fdiv + ddiv + irem + lrem + frem + drem + ineg + lneg + fneg + dneg + ishl + lshl + ishr + lshr + iushr + lushr + iand + land + ior + lor + ixor + lxor + iinc 242, 123 + i2l + i2f + i2d + l2i + l2f + l2d + f2i + f2l + f2d + d2i + d2l + d2f + i2b + i2c + i2s + lcmp + fcmpl + fcmpg + dcmpl + dcmpg + ifeq .L2 + ifne .L11 + iflt .L8 + ifge .L18 + ifgt .L6 + ifle .L10 + if_icmpeq .L11 + if_icmpne .L16 + if_icmplt .L9 + if_icmpge .L13 + if_icmpgt .L8 + if_icmple .L13 + if_acmpeq .L7 + if_acmpne .L8 + goto .L6 + jsr + ret +.Lt: tableswitch + + .align 2 + .long .L2-.Lt + .long 1 + .long 5 + .long .L7-.Lt + .long .L5-.Lt + .long .L18-.Lt + .long .L7-.Lt + .long .L5-.Lt +.Ll: lookupswitch + + .align 2 + .long .L6-.Ll + .long 2 + .long 7 + .long .L15-.Ll + .long 37 + .long .L16-.Ll + ireturn + lreturn + freturn + dreturn + areturn + return + getstatic + putstatic + getfield + putfield + invokevirtual + invokespecial + invokestatic + invokeinterface + new + newarray + anewarray + arraylength + athrow + checkcast + instanceof + monitorenter + monitorexit + wide + multianewarray + ifnull + ifnonnull + goto_w + jsr_w + breakpoint + bytecode + try + endtry + catch + var + endvar + sethi -20317 + load_word_index 90, -91 + load_short_index 93, -123 + load_char_index 23, -40 + load_byte_index 233, -34 + load_ubyte_index 212, 43 + store_word_index 178, 77 + na_store_word_index 198, 27 + store_short_index 180, -44 + store_byte_index 17, -114 + load_ubyte + load_byte + load_char + load_short + load_word + priv_ret_from_trap + priv_read_dcache_tag + priv_read_dcache_data + load_char_oe + load_short_oe + load_word_oe + return0 + priv_read_icache_tag + priv_read_icache_data + ncload_ubyte + ncload_byte + ncload_char + ncload_short + ncload_word + iucmp + priv_powerdown + cache_invalidate + ncload_char_oe + ncload_short_oe + ncload_word_oe + return1 + cache_flush + cache_index_flush + store_byte + store_short + store_word + soft_trap + priv_write_dcache_tag + priv_write_dcache_data + store_short_oe + store_word_oe + return2 + priv_write_icache_tag + priv_write_icache_data + ncstore_byte + ncstore_short + ncstore_word + priv_reset + get_current_class + ncstore_short_oe + ncstore_word_oe + call + zero_line + priv_update_optop + read_pc + read_vars + read_frame + read_optop + priv_read_oplim + read_const_pool + priv_read_psr + priv_read_trapbase + priv_read_lockcount0 + priv_read_lockcount1 + priv_read_lockaddr0 + priv_read_lockaddr1 + priv_read_userrange1 + priv_read_gc_config + priv_read_brk1a + priv_read_brk2a + priv_read_brk12c + priv_read_userrange2 + priv_read_versionid + priv_read_hcr + priv_read_sc_bottom + read_global0 + read_global1 + read_global2 + read_global3 + write_pc + write_vars + write_frame + write_optop + priv_write_oplim + write_const_pool + priv_write_psr + priv_write_trapbase + priv_write_lockcount0 + priv_write_lockcount1 + priv_write_lockaddr0 + priv_write_lockaddr1 + priv_write_userrange1 + priv_write_gc_config + priv_write_brk1a + priv_write_brk2a + priv_write_brk12c + priv_write_userrange2 + priv_write_sc_bottom + write_global0 + write_global1 + write_global2 + write_global3 + tm_putchar + tm_exit + tm_trap + tm_minfo diff --git a/gas/testsuite/gas/pj/pj.exp b/gas/testsuite/gas/pj/pj.exp new file mode 100644 index 0000000000..b8a4036254 --- /dev/null +++ b/gas/testsuite/gas/pj/pj.exp @@ -0,0 +1,7 @@ +# +# Some pj tests +# +if [istarget pj*] then { + run_dump_test "ops" +} +