Safe Haskell | Safe-Infered |
---|
This module declares data type for JVM instructions, and BinaryState instances to read/write them.
- data Instruction
- = 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 Word8
- | SIPUSH Word16
- | LDC1 Word8
- | LDC2 Word16
- | LDC2W Word16
- | ILOAD Word8
- | LLOAD Word8
- | FLOAD Word8
- | DLOAD Word8
- | ALOAD Word8
- | ILOAD_ IMM
- | LLOAD_ IMM
- | FLOAD_ IMM
- | DLOAD_ IMM
- | ALOAD_ IMM
- | IALOAD
- | LALOAD
- | FALOAD
- | DALOAD
- | AALOAD
- | BALOAD
- | CALOAD
- | SALOAD
- | ISTORE Word8
- | LSTORE Word8
- | FSTORE Word8
- | DSTORE Word8
- | ASTORE Word8
- | ISTORE_ IMM
- | LSTORE_ IMM
- | FSTORE_ IMM
- | DSTORE_ IMM
- | ASTORE_ IMM
- | 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 Word8 Word8
- | I2L
- | I2F
- | I2D
- | L2I
- | L2F
- | L2D
- | F2I
- | F2L
- | F2D
- | D2I
- | D2L
- | D2F
- | I2B
- | I2C
- | I2S
- | LCMP
- | FCMP CMP
- | DCMP CMP
- | IF CMP Word16
- | IF_ICMP CMP Word16
- | IF_ACMP CMP Word16
- | GOTO Word16
- | JSR Word16
- | RET
- | TABLESWITCH Word32 Word32 Word32 [Word32]
- | LOOKUPSWITCH Word32 Word32 [(Word32, Word32)]
- | IRETURN
- | LRETURN
- | FRETURN
- | DRETURN
- | ARETURN
- | RETURN
- | GETSTATIC Word16
- | PUTSTATIC Word16
- | GETFIELD Word16
- | PUTFIELD Word16
- | INVOKEVIRTUAL Word16
- | INVOKESPECIAL Word16
- | INVOKESTATIC Word16
- | INVOKEINTERFACE Word16 Word8
- | NEW Word16
- | NEWARRAY Word8
- | ANEWARRAY Word16
- | ARRAYLENGTH
- | ATHROW
- | CHECKCAST Word16
- | INSTANCEOF Word16
- | MONITORENTER
- | MONITOREXIT
- | WIDE Word8 Instruction
- | MULTINANEWARRAY Word16 Word8
- | IFNULL Word16
- | IFNONNULL Word16
- | GOTO_W Word32
- | JSR_W Word32
- data ArrayType
- data CodeException = CodeException {
- eStartPC :: Word16
- eEndPC :: Word16
- eHandlerPC :: Word16
- eCatchType :: Word16
- data Code = Code {}
- data IMM
- data CMP
- atype2byte :: ArrayType -> Word8
- encodeInstructions :: [Instruction] -> ByteString
- encodeMethod :: Code -> ByteString
- decodeMethod :: ByteString -> Code
Documentation
data Instruction Source
JVM instruction set. For comments, see JVM specification.
JVM array type (primitive types)
data CodeException Source
Exception descriptor
CodeException | |
|
Format of Code method attribute.
Code | |
|
Immediate constant. Corresponding value will be added to base opcode.
Comparation operation type. Not all CMP instructions support all operations.
atype2byte :: ArrayType -> Word8Source
encodeInstructions :: [Instruction] -> ByteStringSource
Encode list of instructions
encodeMethod :: Code -> ByteStringSource
Encode Java method
decodeMethod :: ByteString -> CodeSource
Decode Java method