# -*- coding: utf-8 -*-

bytecode_map = {

"move": "M",  # M指令集
"move/from16": "M",
"move/16": "M",
"move-wide": "M",
"move-wide/from16": "M",
"move-wide/16": "M",
"move-object": "M",
"move-object/from16": "M",
"move-object/16": "M",
"move-result": "M",
"move-result-wide": "M",
"move-result-object": "M",
"move-exception": "M",

"return-void": "R",  # R指令集
"return": "R",
"return-wide": "R",
"return-object": "R",

"goto": "G",  # G指令集
"goto/16": "G",
"goto/32": "G",

"if-eq": "I",  #I 指令集
"if-ne": "I",
"if-lt": "I",
"if-ge": "I",
"if-gt": "I",
"if-le": "I",
"if-eqz": "I",
"if-nez": "I",
"if-ltz": "I",
"if-gez": "I",
"if-gtz": "I",
"if-lez": "I",

"aget": "T",  # T指令集
"aget-wide": "T",
"aget-object": "T",
"aget-boolean": "T",
"aget-byte": "T",
"aget-char": "T",
"aget-short": "T",
"iget": "T",
"iget-wide": "T",
"iget-object": "T",
"iget-boolean": "T",
"iget-byte": "T",
"iget-char": "T",
"iget-short": "T",
"sget": "T",
"sget-wide": "T",
"sget-object": "T",
"sget-boolean": "T",
"sget-byte": "T",
"sget-char": "T",
"sget-short": "T",

"aput": "P",  # P指令集
"aput-wide": "P",
"aput-object": "P",
"aput-boolean": "P",
"aput-byte": "P",
"aput-char": "P",
"aput-short": "P",
"iput": "P",
"iput-wide": "P",
"iput-object": "P",
"iput-boolean": "P",
"iput-byte": "P",
"iput-char": "P",
"iput-short": "P",
"sput": "P",
"sput-wide": "P",
"sput-object": "P",
"sput-boolean": "P",
"sput-byte": "P",
"sput-char": "P",
"sput-short": "P",

"invoke-virtual": "V",  # V指令集
"invoke-super": "V",
"invoke-direct": "V",
"invoke-static": "V",
"invoke-interface": "V",
"invoke-virtual/range": "V",
"invoke-super/range": "V",
"invoke-direct/range": "V",
"invoke-static/range": "V",
"invoke-interface/range": "V",
}