X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Fpj-opc.c;h=5c2ceb001dc543480e378cbd4b0115291fa234eb;hb=cde3679eb5aca10a6d09f6aa4f846ac99a3371dd;hp=0a86a83e6eaed6437c22234c63d01dc24e70ec5f;hpb=f4321104139af96b8cc3d4946b4e5233d9fa1eab;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/pj-opc.c b/opcodes/pj-opc.c index 0a86a83e6e..5c2ceb001d 100644 --- a/opcodes/pj-opc.c +++ b/opcodes/pj-opc.c @@ -1,21 +1,23 @@ /* pj-opc.c -- Definitions for picoJava opcodes. - Copyright 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1999-2018 Free Software Foundation, Inc. Contributed by Steve Chamberlain of Transmeta (sac@pobox.com). -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This file is part of the GNU opcodes library. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This library is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + You should have received a copy of the GNU General Public License + along with this file; see the file COPYING. If not, write to the + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ #include "sysdep.h" #include "opcode/pj.h" @@ -190,8 +192,8 @@ const pj_opc_info_t pj_opc_info[512] = { 0xa5, -1, 3, {O_R16, O_N}, {"if_acmpeq"}}, { 0xa6, -1, 3, {O_R16, O_N}, {"if_acmpne"}}, { 0xa7, -1, 3, {O_R16, O_N}, {"goto"}}, -{ 0xa8, -1, 3, {O_N, O_N}, {"jsr"}}, -{ 0xa9, -1, 2, {O_N, O_N}, {"ret"}}, +{ 0xa8, -1, 3, {O_R16, O_N}, {"jsr"}}, +{ 0xa9, -1, 2, {O_U8, O_N}, {"ret"}}, { 0xaa, -1, 1, {O_N, O_N}, {"tableswitch"}}, { 0xab, -1, 1, {O_N, O_N}, {"lookupswitch"}}, { 0xac, -1, 1, {O_N, O_N}, {"ireturn"}}, @@ -200,14 +202,14 @@ const pj_opc_info_t pj_opc_info[512] = { 0xaf, -1, 1, {O_N, O_N}, {"dreturn"}}, { 0xb0, -1, 1, {O_N, O_N}, {"areturn"}}, { 0xb1, -1, 1, {O_N, O_N}, {"return"}}, -{ 0xb2, -1, 3, {O_N, O_N}, {"getstatic"}}, -{ 0xb3, -1, 3, {O_N, O_N}, {"putstatic"}}, -{ 0xb4, -1, 3, {O_N, O_N}, {"getfield"}}, -{ 0xb5, -1, 3, {O_N, O_N}, {"putfield"}}, -{ 0xb6, -1, 3, {O_N, O_N}, {"invokevirtual"}}, -{ 0xb7, -1, 3, {O_N, O_N}, {"invokespecial"}}, -{ 0xb8, -1, 3, {O_N, O_N}, {"invokestatic"}}, -{ 0xb9, -1, 5, {O_N, O_N}, {"invokeinterface"}}, +{ 0xb2, -1, 3, {O_U16, O_N}, {"getstatic"}}, +{ 0xb3, -1, 3, {O_U16, O_N}, {"putstatic"}}, +{ 0xb4, -1, 3, {O_U16, O_N}, {"getfield"}}, +{ 0xb5, -1, 3, {O_U16, O_N}, {"putfield"}}, +{ 0xb6, -1, 3, {O_U16, O_N}, {"invokevirtual"}}, +{ 0xb7, -1, 3, {O_U16, O_N}, {"invokespecial"}}, +{ 0xb8, -1, 3, {O_U16, O_N}, {"invokestatic"}}, +{ 0xb9, -1, 5, {O_U16, O_U8}, {"invokeinterface"}}, { 0xba, -1, 1, {O_N, O_N}, {"bad_ba"}}, { 0xbb, -1, 3, {O_N, O_N}, {"new"}}, { 0xbc, -1, 2, {O_N, O_N}, {"newarray"}}, @@ -222,43 +224,43 @@ const pj_opc_info_t pj_opc_info[512] = { 0xc5, -1, 4, {O_N, O_N}, {"multianewarray"}}, { 0xc6, -1, 3, {O_N, O_N}, {"ifnull"}}, { 0xc7, -1, 3, {O_N, O_N}, {"ifnonnull"}}, -{ 0xc8, -1, 5, {O_N, O_N}, {"goto_w"}}, -{ 0xc9, -1, 5, {O_N, O_N}, {"jsr_w"}}, -{ 0xca, -1, 1, {O_N, O_N}, {"breakpoint"}}, -{ 0xcb, -1, 1, {O_N, O_N}, {"bytecode"}}, -{ 0xcc, -1, 1, {O_N, O_N}, {"try"}}, -{ 0xcd, -1, 1, {O_N, O_N}, {"endtry"}}, -{ 0xce, -1, 1, {O_N, O_N}, {"catch"}}, -{ 0xcf, -1, 1, {O_N, O_N}, {"var"}}, -{ 0xd0, -1, 1, {O_N, O_N}, {"endvar"}}, -{ 0xd1, -1, 1, {O_N, O_N}, {"bad_d1"}}, -{ 0xd2, -1, 1, {O_N, O_N}, {"bad_d2"}}, -{ 0xd3, -1, 1, {O_N, O_N}, {"bad_d3"}}, -{ 0xd4, -1, 1, {O_N, O_N}, {"bad_d4"}}, -{ 0xd5, -1, 1, {O_N, O_N}, {"bad_d5"}}, -{ 0xd6, -1, 1, {O_N, O_N}, {"bad_d6"}}, -{ 0xd7, -1, 1, {O_N, O_N}, {"bad_d7"}}, -{ 0xd8, -1, 1, {O_N, O_N}, {"bad_d8"}}, -{ 0xd9, -1, 1, {O_N, O_N}, {"bad_d9"}}, -{ 0xda, -1, 1, {O_N, O_N}, {"bad_da"}}, +{ 0xc8, -1, 5, {O_R32, O_N}, {"goto_w"}}, +{ 0xc9, -1, 5, {O_R32, O_N}, {"jsr_w"}}, +{ 0xca, -1, 3, {O_N, O_N}, {"breakpoint"}}, +{ 0xcb, -1, 2, {O_U8, O_N}, {"ldc_quick"}}, +{ 0xcc, -1, 3, {O_U16, O_N}, {"ldc_w_quick"}}, +{ 0xcd, -1, 3, {O_U16, O_N}, {"ldc2_w_quick"}}, +{ 0xce, -1, 3, {O_U16, O_N}, {"getfield_quick"}}, +{ 0xcf, -1, 3, {O_U16, O_N}, {"putfield_quick"}}, +{ 0xd0, -1, 3, {O_U16, O_N}, {"getfield2_quick"}}, +{ 0xd1, -1, 3, {O_U16, O_N}, {"putfield2_quick"}}, +{ 0xd2, -1, 3, {O_U16, O_N}, {"getstatic_quick"}}, +{ 0xd3, -1, 3, {O_U16, O_N}, {"putstatic_quick"}}, +{ 0xd4, -1, 3, {O_U16, O_N}, {"getstatic2_quick"}}, +{ 0xd5, -1, 3, {O_U16, O_N}, {"putstatic2_quick"}}, +{ 0xd6, -1, 3, {O_U16, O_N}, {"invokevirtual_quick"}}, +{ 0xd7, -1, 3, {O_U16, O_N}, {"invokenonvirtual_quick"}}, +{ 0xd8, -1, 3, {O_U16, O_N}, {"invokesuper_quick"}}, +{ 0xd9, -1, 3, {O_U16, O_N}, {"invokestatic_quick"}}, +{ 0xda, -1, 3, {O_U16, O_N}, {"invokeinterface_quick"}}, { 0xdb, -1, 1, {O_N, O_N}, {"bad_db"}}, -{ 0xdc, -1, 1, {O_N, O_N}, {"bad_dc"}}, -{ 0xdd, -1, 1, {O_N, O_N}, {"bad_dd"}}, -{ 0xde, -1, 1, {O_N, O_N}, {"bad_de"}}, -{ 0xdf, -1, 1, {O_N, O_N}, {"bad_df"}}, -{ 0xe0, -1, 1, {O_N, O_N}, {"bad_e0"}}, -{ 0xe1, -1, 1, {O_N, O_N}, {"bad_e1"}}, -{ 0xe2, -1, 1, {O_N, O_N}, {"bad_e2"}}, -{ 0xe3, -1, 1, {O_N, O_N}, {"bad_e3"}}, -{ 0xe4, -1, 1, {O_N, O_N}, {"bad_e4"}}, -{ 0xe5, -1, 1, {O_N, O_N}, {"bad_e5"}}, -{ 0xe6, -1, 1, {O_N, O_N}, {"bad_e6"}}, -{ 0xe7, -1, 1, {O_N, O_N}, {"bad_e7"}}, -{ 0xe8, -1, 1, {O_N, O_N}, {"bad_e8"}}, -{ 0xe9, -1, 1, {O_N, O_N}, {"bad_e9"}}, -{ 0xea, -1, 1, {O_N, O_N}, {"bad_ea"}}, -{ 0xeb, -1, 1, {O_N, O_N}, {"bad_eb"}}, -{ 0xec, -1, 1, {O_N, O_N}, {"bad_ec"}}, +{ 0xdc, -1, 1, {O_N, O_N}, {"aastore_quick"}}, +{ 0xdd, -1, 3, {O_U16, O_N}, {"new_quick"}}, +{ 0xde, -1, 3, {O_U16, O_N}, {"anewarray_quick"}}, +{ 0xdf, -1, 3, {O_U16, O_N}, {"multianewarray_quick"}}, +{ 0xe0, -1, 3, {O_U16, O_N}, {"checkcast_quick"}}, +{ 0xe1, -1, 3, {O_U16, O_N}, {"instanceof_quick"}}, +{ 0xe2, -1, 3, {O_U16, O_N}, {"invokevirtiual_quick_w"}}, +{ 0xe3, -1, 3, {O_U16, O_N}, {"getfield_quick_w"}}, +{ 0xe4, -1, 3, {O_U16, O_N}, {"putfield_quick_w"}}, +{ 0xe5, -1, 1, {O_N, O_N}, {"nonnull_quick"}}, +{ 0xe6, -1, 3, {O_U16, O_N}, {"agetfield_quick"}}, +{ 0xe7, -1, 3, {O_U16, O_N}, {"aputfield_quick"}}, +{ 0xe8, -1, 3, {O_U16, O_N}, {"agetstatic_quick"}}, +{ 0xe9, -1, 3, {O_U16, O_N}, {"aputstatic_quick"}}, +{ 0xea, -1, 2, {O_U8, O_N}, {"aldc_quick"}}, +{ 0xeb, -1, 3, {O_U16, O_N}, {"aldc_w_quick"}}, +{ 0xec, -1, 1, {O_N, O_N}, {"exit_sync_method"}}, { 0xed, -1, 3, {O_16, O_N}, {"sethi"}}, { 0xee, -1, 3, {O_U8, O_8}, {"load_word_index"}}, { 0xef, -1, 3, {O_U8, O_8}, {"load_short_index"}}, @@ -277,6 +279,7 @@ const pj_opc_info_t pj_opc_info[512] = { 0xfc, -1, 1, {O_N, O_N}, {"bad_fc"}}, { 0xfd, -1, 1, {O_N, O_N}, {"bad_fd"}}, { 0xfe, -1, 1, {O_N, O_N}, {"bad_fe"}}, + { 0xff, 0x00, 2, {O_N, O_N}, {"load_ubyte"}}, { 0xff, 0x01, 2, {O_N, O_N}, {"load_byte"}}, { 0xff, 0x02, 2, {O_N, O_N}, {"load_char"}}, @@ -451,10 +454,10 @@ const pj_opc_info_t pj_opc_info[512] = { 0xff, 0xab, 2, {O_N, O_N}, {"bad"}}, { 0xff, 0xac, 2, {O_N, O_N}, {"bad"}}, { 0xff, 0xad, 2, {O_N, O_N}, {"bad"}}, -{ 0xff, 0xae, 2, {O_N, O_N}, {"tm_putchar"}}, -{ 0xff, 0xaf, 2, {O_N, O_N}, {"tm_exit"}}, -{ 0xff, 0xb0, 2, {O_N, O_N}, {"tm_trap"}}, -{ 0xff, 0xb1, 2, {O_N, O_N}, {"tm_minfo"}}, +{ 0xff, 0xae, 2, {O_N, O_N}, {"bad"}}, /*LM_FIXED*/ +{ 0xff, 0xaf, 2, {O_N, O_N}, {"bad"}}, /*LM_FIXED*/ +{ 0xff, 0xb0, 2, {O_N, O_N}, {"bad"}}, /*LM_FIXED*/ +{ 0xff, 0xb1, 2, {O_N, O_N}, {"bad"}}, /*LM_FIXED*/ { 0xff, 0xb2, 2, {O_N, O_N}, {"bad"}}, { 0xff, 0xb3, 2, {O_N, O_N}, {"bad"}}, { 0xff, 0xb4, 2, {O_N, O_N}, {"bad"}},