projects
/
hs-java.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Better error handling.
[hs-java.git]
/
JVM
/
Builder
/
Instructions.hs
diff --git
a/JVM/Builder/Instructions.hs
b/JVM/Builder/Instructions.hs
index 0d85d971429e915e3a3bb9877500f5dbd107dc64..8577a44729ad206824102df23ddb7b7640be3e99 100644
(file)
--- a/
JVM/Builder/Instructions.hs
+++ b/
JVM/Builder/Instructions.hs
@@
-10,294
+10,294
@@
import JVM.ClassFile
import JVM.Assembler
import JVM.Builder.Monad
import JVM.Assembler
import JVM.Builder.Monad
-nop :: Generator
g => g
()
+nop :: Generator
e g => g e
()
nop = i0 NOP
nop = i0 NOP
-aconst_null :: Generator
g => g
()
+aconst_null :: Generator
e g => g e
()
aconst_null = i0 ACONST_NULL
aconst_null = i0 ACONST_NULL
-iconst_m1 :: Generator
g => g
()
+iconst_m1 :: Generator
e g => g e
()
iconst_m1 = i0 ICONST_M1
iconst_m1 = i0 ICONST_M1
-iconst_0 :: Generator
g => g
()
+iconst_0 :: Generator
e g => g e
()
iconst_0 = i0 ICONST_0
iconst_0 = i0 ICONST_0
-iconst_1 :: Generator
g => g
()
+iconst_1 :: Generator
e g => g e
()
iconst_1 = i0 ICONST_1
iconst_1 = i0 ICONST_1
-iconst_2 :: Generator
g => g
()
+iconst_2 :: Generator
e g => g e
()
iconst_2 = i0 ICONST_2
iconst_2 = i0 ICONST_2
-iconst_3 :: Generator
g => g
()
+iconst_3 :: Generator
e g => g e
()
iconst_3 = i0 ICONST_3
iconst_3 = i0 ICONST_3
-iconst_4 :: Generator
g => g
()
+iconst_4 :: Generator
e g => g e
()
iconst_4 = i0 ICONST_4
iconst_4 = i0 ICONST_4
-iconst_5 :: Generator
g => g
()
+iconst_5 :: Generator
e g => g e
()
iconst_5 = i0 ICONST_5
iconst_5 = i0 ICONST_5
-lconst_0 :: Generator
g => g
()
+lconst_0 :: Generator
e g => g e
()
lconst_0 = i0 LCONST_0
lconst_0 = i0 LCONST_0
-lconst_1 :: Generator
g => g
()
+lconst_1 :: Generator
e g => g e
()
lconst_1 = i0 LCONST_1
lconst_1 = i0 LCONST_1
-fconst_0 :: Generator
g => g
()
+fconst_0 :: Generator
e g => g e
()
fconst_0 = i0 FCONST_0
fconst_0 = i0 FCONST_0
-fconst_1 :: Generator
g => g
()
+fconst_1 :: Generator
e g => g e
()
fconst_1 = i0 FCONST_1
fconst_1 = i0 FCONST_1
-fconst_2 :: Generator
g => g
()
+fconst_2 :: Generator
e g => g e
()
fconst_2 = i0 FCONST_2
fconst_2 = i0 FCONST_2
-dconst_0 :: Generator
g => g
()
+dconst_0 :: Generator
e g => g e
()
dconst_0 = i0 DCONST_0
dconst_0 = i0 DCONST_0
-dconst_1 :: Generator
g => g
()
+dconst_1 :: Generator
e g => g e
()
dconst_1 = i0 DCONST_1
dconst_1 = i0 DCONST_1
-bipush :: Generator
g => Word8 -> g
()
+bipush :: Generator
e g => Word8 -> g e
()
bipush x = i0 (BIPUSH x)
bipush x = i0 (BIPUSH x)
-sipush :: Generator
g => Word16 -> g
()
+sipush :: Generator
e g => Word16 -> g e
()
sipush x = i0 (SIPUSH x)
sipush x = i0 (SIPUSH x)
-ldc1 :: Generator
g => Constant Direct -> g
()
+ldc1 :: Generator
e g => Constant Direct -> g e
()
ldc1 x = i8 LDC1 x
ldc1 x = i8 LDC1 x
-ldc2 :: Generator
g => Constant Direct -> g
()
+ldc2 :: Generator
e g => Constant Direct -> g e
()
ldc2 x = i1 LDC2 x
ldc2 x = i1 LDC2 x
-ldc2w :: Generator
g => Constant Direct -> g
()
+ldc2w :: Generator
e g => Constant Direct -> g e
()
ldc2w x = i1 LDC2W x
ldc2w x = i1 LDC2W x
-iload :: Generator
g => Constant Direct -> g
()
+iload :: Generator
e g => Constant Direct -> g e
()
iload x = i8 ILOAD x
iload x = i8 ILOAD x
-lload :: Generator
g => Constant Direct -> g
()
+lload :: Generator
e g => Constant Direct -> g e
()
lload x = i8 LLOAD x
lload x = i8 LLOAD x
-fload :: Generator
g => Constant Direct -> g
()
+fload :: Generator
e g => Constant Direct -> g e
()
fload x = i8 FLOAD x
fload x = i8 FLOAD x
-dload :: Generator
g => Constant Direct -> g
()
+dload :: Generator
e g => Constant Direct -> g e
()
dload x = i8 DLOAD x
dload x = i8 DLOAD x
-aload :: Generator
g => Constant Direct -> g
()
+aload :: Generator
e g => Constant Direct -> g e
()
aload x = i8 ALOAD x
aload x = i8 ALOAD x
-iload_ :: Generator
g => IMM -> g
()
+iload_ :: Generator
e g => IMM -> g e
()
iload_ x = i0 (ILOAD_ x)
iload_ x = i0 (ILOAD_ x)
-lload_ :: Generator
g => IMM -> g
()
+lload_ :: Generator
e g => IMM -> g e
()
lload_ x = i0 (LLOAD_ x)
lload_ x = i0 (LLOAD_ x)
-fload_ :: Generator
g => IMM -> g
()
+fload_ :: Generator
e g => IMM -> g e
()
fload_ x = i0 (FLOAD_ x)
fload_ x = i0 (FLOAD_ x)
-dload_ :: Generator
g => IMM -> g
()
+dload_ :: Generator
e g => IMM -> g e
()
dload_ x = i0 (DLOAD_ x)
dload_ x = i0 (DLOAD_ x)
-aload_ :: Generator
g => IMM -> g
()
+aload_ :: Generator
e g => IMM -> g e
()
aload_ x = i0 (ALOAD_ x)
aload_ x = i0 (ALOAD_ x)
-iaload :: Generator
g => g
()
+iaload :: Generator
e g => g e
()
iaload = i0 IALOAD
iaload = i0 IALOAD
-laload :: Generator
g => g
()
+laload :: Generator
e g => g e
()
laload = i0 LALOAD
laload = i0 LALOAD
-faload :: Generator
g => g
()
+faload :: Generator
e g => g e
()
faload = i0 FALOAD
faload = i0 FALOAD
-daload :: Generator
g => g
()
+daload :: Generator
e g => g e
()
daload = i0 DALOAD
daload = i0 DALOAD
-aaload :: Generator
g => g
()
+aaload :: Generator
e g => g e
()
aaload = i0 AALOAD
aaload = i0 AALOAD
-caload :: Generator
g => g
()
+caload :: Generator
e g => g e
()
caload = i0 CALOAD
caload = i0 CALOAD
-saload :: Generator
g => g
()
+saload :: Generator
e g => g e
()
saload = i0 SALOAD
saload = i0 SALOAD
-istore :: Generator
g => Constant Direct -> g
()
+istore :: Generator
e g => Constant Direct -> g e
()
istore x = i8 ISTORE x
istore x = i8 ISTORE x
-lstore :: Generator
g => Constant Direct -> g
()
+lstore :: Generator
e g => Constant Direct -> g e
()
lstore x = i8 LSTORE x
lstore x = i8 LSTORE x
-fstore :: Generator
g => Constant Direct -> g
()
+fstore :: Generator
e g => Constant Direct -> g e
()
fstore x = i8 FSTORE x
fstore x = i8 FSTORE x
-dstore :: Generator
g => Constant Direct -> g
()
+dstore :: Generator
e g => Constant Direct -> g e
()
dstore x = i8 DSTORE x
dstore x = i8 DSTORE x
-astore :: Generator
g => Constant Direct -> g
()
+astore :: Generator
e g => Constant Direct -> g e
()
astore x = i8 ASTORE x
astore x = i8 ASTORE x
-istore_ :: Generator
g => Word8 -> g
()
+istore_ :: Generator
e g => Word8 -> g e
()
istore_ x = i0 (ISTORE x)
istore_ x = i0 (ISTORE x)
-lstore_ :: Generator
g => Word8 -> g
()
+lstore_ :: Generator
e g => Word8 -> g e
()
lstore_ x = i0 (LSTORE x)
lstore_ x = i0 (LSTORE x)
-fstore_ :: Generator
g => Word8 -> g
()
+fstore_ :: Generator
e g => Word8 -> g e
()
fstore_ x = i0 (FSTORE x)
fstore_ x = i0 (FSTORE x)
-dstore_ :: Generator
g => Word8 -> g
()
+dstore_ :: Generator
e g => Word8 -> g e
()
dstore_ x = i0 (DSTORE x)
dstore_ x = i0 (DSTORE x)
-astore_ :: Generator
g => Word8 -> g
()
+astore_ :: Generator
e g => Word8 -> g e
()
astore_ x = i0 (ASTORE x)
astore_ x = i0 (ASTORE x)
-iastore :: Generator
g => g
()
+iastore :: Generator
e g => g e
()
iastore = i0 IASTORE
iastore = i0 IASTORE
-lastore :: Generator
g => g
()
+lastore :: Generator
e g => g e
()
lastore = i0 LASTORE
lastore = i0 LASTORE
-fastore :: Generator
g => g
()
+fastore :: Generator
e g => g e
()
fastore = i0 FASTORE
fastore = i0 FASTORE
-dastore :: Generator
g => g
()
+dastore :: Generator
e g => g e
()
dastore = i0 DASTORE
dastore = i0 DASTORE
-aastore :: Generator
g => g
()
+aastore :: Generator
e g => g e
()
aastore = i0 AASTORE
aastore = i0 AASTORE
-bastore :: Generator
g => g
()
+bastore :: Generator
e g => g e
()
bastore = i0 BASTORE
bastore = i0 BASTORE
-castore :: Generator
g => g
()
+castore :: Generator
e g => g e
()
castore = i0 CASTORE
castore = i0 CASTORE
-sastore :: Generator
g => g
()
+sastore :: Generator
e g => g e
()
sastore = i0 SASTORE
sastore = i0 SASTORE
-pop :: Generator
g => g
()
+pop :: Generator
e g => g e
()
pop = i0 POP
pop = i0 POP
-pop2 :: Generator
g => g
()
+pop2 :: Generator
e g => g e
()
pop2 = i0 POP2
pop2 = i0 POP2
-dup :: Generator
g => g
()
+dup :: Generator
e g => g e
()
dup = i0 DUP
dup = i0 DUP
-dup_x1 :: Generator
g => g
()
+dup_x1 :: Generator
e g => g e
()
dup_x1 = i0 DUP_X1
dup_x1 = i0 DUP_X1
-dup_x2 :: Generator
g => g
()
+dup_x2 :: Generator
e g => g e
()
dup_x2 = i0 DUP_X2
dup_x2 = i0 DUP_X2
-dup2 :: Generator
g => g
()
+dup2 :: Generator
e g => g e
()
dup2 = i0 DUP2
dup2 = i0 DUP2
-dup2_x1 :: Generator
g => g
()
+dup2_x1 :: Generator
e g => g e
()
dup2_x1 = i0 DUP2_X1
dup2_x1 = i0 DUP2_X1
-dup2_x2 :: Generator
g => g
()
+dup2_x2 :: Generator
e g => g e
()
dup2_x2 = i0 DUP2_X2
dup2_x2 = i0 DUP2_X2
-swap :: Generator
g => g
()
+swap :: Generator
e g => g e
()
swap = i0 SWAP
swap = i0 SWAP
-iadd :: Generator
g => g
()
+iadd :: Generator
e g => g e
()
iadd = i0 IADD
iadd = i0 IADD
-ladd :: Generator
g => g
()
+ladd :: Generator
e g => g e
()
ladd = i0 LADD
ladd = i0 LADD
-fadd :: Generator
g => g
()
+fadd :: Generator
e g => g e
()
fadd = i0 FADD
fadd = i0 FADD
-dadd :: Generator
g => g
()
+dadd :: Generator
e g => g e
()
dadd = i0 DADD
dadd = i0 DADD
-isub :: Generator
g => g
()
+isub :: Generator
e g => g e
()
isub = i0 ISUB
isub = i0 ISUB
-lsub :: Generator
g => g
()
+lsub :: Generator
e g => g e
()
lsub = i0 LSUB
lsub = i0 LSUB
-fsub :: Generator
g => g
()
+fsub :: Generator
e g => g e
()
fsub = i0 FSUB
fsub = i0 FSUB
-dsub :: Generator
g => g
()
+dsub :: Generator
e g => g e
()
dsub = i0 DSUB
dsub = i0 DSUB
-imul :: Generator
g => g
()
+imul :: Generator
e g => g e
()
imul = i0 IMUL
imul = i0 IMUL
-lmul :: Generator
g => g
()
+lmul :: Generator
e g => g e
()
lmul = i0 LMUL
lmul = i0 LMUL
-fmul :: Generator
g => g
()
+fmul :: Generator
e g => g e
()
fmul = i0 FMUL
fmul = i0 FMUL
-dmul :: Generator
g => g
()
+dmul :: Generator
e g => g e
()
dmul = i0 DMUL
dmul = i0 DMUL
-idiv :: Generator
g => g
()
+idiv :: Generator
e g => g e
()
idiv = i0 IDIV
idiv = i0 IDIV
-ldiv :: Generator
g => g
()
+ldiv :: Generator
e g => g e
()
ldiv = i0 LDIV
ldiv = i0 LDIV
-fdiv :: Generator
g => g
()
+fdiv :: Generator
e g => g e
()
fdiv = i0 FDIV
fdiv = i0 FDIV
-ddiv :: Generator
g => g
()
+ddiv :: Generator
e g => g e
()
ddiv = i0 DDIV
ddiv = i0 DDIV
-irem :: Generator
g => g
()
+irem :: Generator
e g => g e
()
irem = i0 IREM
irem = i0 IREM
-lrem :: Generator
g => g
()
+lrem :: Generator
e g => g e
()
lrem = i0 LREM
lrem = i0 LREM
-frem :: Generator
g => g
()
+frem :: Generator
e g => g e
()
frem = i0 FREM
frem = i0 FREM
-drem :: Generator
g => g
()
+drem :: Generator
e g => g e
()
drem = i0 DREM
drem = i0 DREM
-ineg :: Generator
g => g
()
+ineg :: Generator
e g => g e
()
ineg = i0 INEG
ineg = i0 INEG
-lneg :: Generator
g => g
()
+lneg :: Generator
e g => g e
()
lneg = i0 LNEG
lneg = i0 LNEG
-fneg :: Generator
g => g
()
+fneg :: Generator
e g => g e
()
fneg = i0 FNEG
fneg = i0 FNEG
-dneg :: Generator
g => g
()
+dneg :: Generator
e g => g e
()
dneg = i0 DNEG
dneg = i0 DNEG
-ishl :: Generator
g => g
()
+ishl :: Generator
e g => g e
()
ishl = i0 ISHL
ishl = i0 ISHL
-lshl :: Generator
g => g
()
+lshl :: Generator
e g => g e
()
lshl = i0 LSHL
lshl = i0 LSHL
-ishr :: Generator
g => g
()
+ishr :: Generator
e g => g e
()
ishr = i0 ISHR
ishr = i0 ISHR
-lshr :: Generator
g => g
()
+lshr :: Generator
e g => g e
()
lshr = i0 LSHR
lshr = i0 LSHR
-iushr :: Generator
g => g
()
+iushr :: Generator
e g => g e
()
iushr = i0 IUSHR
iushr = i0 IUSHR
-lushr :: Generator
g => g
()
+lushr :: Generator
e g => g e
()
lushr = i0 LUSHR
lushr = i0 LUSHR
-iand :: Generator
g => g
()
+iand :: Generator
e g => g e
()
iand = i0 IAND
iand = i0 IAND
-land :: Generator
g => g
()
+land :: Generator
e g => g e
()
land = i0 LAND
land = i0 LAND
-ior :: Generator
g => g
()
+ior :: Generator
e g => g e
()
ior = i0 IOR
ior = i0 IOR
-lor :: Generator
g => g
()
+lor :: Generator
e g => g e
()
lor = i0 LOR
lor = i0 LOR
-ixor :: Generator
g => g
()
+ixor :: Generator
e g => g e
()
ixor = i0 IXOR
ixor = i0 IXOR
-lxor :: Generator
g => g
()
+lxor :: Generator
e g => g e
()
lxor = i0 LXOR
lxor = i0 LXOR
-iinc :: Generator
g => Word8 -> Word8 -> g
()
+iinc :: Generator
e g => Word8 -> Word8 -> g e
()
iinc x y = i0 (IINC x y)
iinc x y = i0 (IINC x y)
-i2l :: Generator
g => g
()
+i2l :: Generator
e g => g e
()
i2l = i0 I2L
i2l = i0 I2L
-i2f :: Generator
g => g
()
+i2f :: Generator
e g => g e
()
i2f = i0 I2F
i2f = i0 I2F
-i2d :: Generator
g => g
()
+i2d :: Generator
e g => g e
()
i2d = i0 I2D
i2d = i0 I2D
-l2i :: Generator
g => g
()
+l2i :: Generator
e g => g e
()
l2i = i0 L2I
l2i = i0 L2I
-l2f :: Generator
g => g
()
+l2f :: Generator
e g => g e
()
l2f = i0 L2F
l2f = i0 L2F
-l2d :: Generator
g => g
()
+l2d :: Generator
e g => g e
()
l2d = i0 L2D
l2d = i0 L2D
-f2i :: Generator
g => g
()
+f2i :: Generator
e g => g e
()
f2i = i0 F2I
f2i = i0 F2I
-f2l :: Generator
g => g
()
+f2l :: Generator
e g => g e
()
f2l = i0 F2L
f2l = i0 F2L
-f2d :: Generator
g => g
()
+f2d :: Generator
e g => g e
()
f2d = i0 F2D
f2d = i0 F2D
-d2i :: Generator
g => g
()
+d2i :: Generator
e g => g e
()
d2i = i0 D2I
d2i = i0 D2I
-d2l :: Generator
g => g
()
+d2l :: Generator
e g => g e
()
d2l = i0 D2L
d2l = i0 D2L
-d2f :: Generator
g => g
()
+d2f :: Generator
e g => g e
()
d2f = i0 D2F
d2f = i0 D2F
-i2b :: Generator
g => g
()
+i2b :: Generator
e g => g e
()
i2b = i0 I2B
i2b = i0 I2B
-i2c :: Generator
g => g
()
+i2c :: Generator
e g => g e
()
i2c = i0 I2C
i2c = i0 I2C
-i2s :: Generator
g => g
()
+i2s :: Generator
e g => g e
()
i2s = i0 I2S
i2s = i0 I2S
-lcmp :: Generator
g => g
()
+lcmp :: Generator
e g => g e
()
lcmp = i0 LCMP
-- | Wide instruction
lcmp = i0 LCMP
-- | Wide instruction
-wide :: Generator
g => (Word8 -> Instruction) -> Constant Direct -> g
()
+wide :: Generator
e g => (Word8 -> Instruction) -> Constant Direct -> g e
()
wide fn c = do
ix <- addToPool c
let ix0 = fromIntegral (ix `div` 0x100) :: Word8
ix1 = fromIntegral (ix `mod` 0x100) :: Word8
i0 (WIDE ix0 $ fn ix1)
wide fn c = do
ix <- addToPool c
let ix0 = fromIntegral (ix `div` 0x100) :: Word8
ix1 = fromIntegral (ix `mod` 0x100) :: Word8
i0 (WIDE ix0 $ fn ix1)
-new :: Generator
g => B.ByteString -> g
()
+new :: Generator
e g => B.ByteString -> g e
()
new cls =
i1 NEW (CClass cls)
new cls =
i1 NEW (CClass cls)
-newArray :: Generator
g => ArrayType -> g
()
+newArray :: Generator
e g => ArrayType -> g e
()
newArray t =
i0 (NEWARRAY $ atype2byte t)
newArray t =
i0 (NEWARRAY $ atype2byte t)
-allocNewArray :: Generator
g => B.ByteString -> g
()
+allocNewArray :: Generator
e g => B.ByteString -> g e
()
allocNewArray cls =
i1 ANEWARRAY (CClass cls)
allocNewArray cls =
i1 ANEWARRAY (CClass cls)
-invokeVirtual :: Generator
g => B.ByteString -> NameType Method -> g
()
+invokeVirtual :: Generator
e g => B.ByteString -> NameType Method -> g e
()
invokeVirtual cls sig =
i1 INVOKEVIRTUAL (CMethod cls sig)
invokeVirtual cls sig =
i1 INVOKEVIRTUAL (CMethod cls sig)
-invokeStatic :: Generator
g => B.ByteString -> NameType Method -> g
()
+invokeStatic :: Generator
e g => B.ByteString -> NameType Method -> g e
()
invokeStatic cls sig =
i1 INVOKESTATIC (CMethod cls sig)
invokeStatic cls sig =
i1 INVOKESTATIC (CMethod cls sig)
-invokeSpecial :: Generator
g => B.ByteString -> NameType Method -> g
()
+invokeSpecial :: Generator
e g => B.ByteString -> NameType Method -> g e
()
invokeSpecial cls sig =
i1 INVOKESPECIAL (CMethod cls sig)
invokeSpecial cls sig =
i1 INVOKESPECIAL (CMethod cls sig)
-getStaticField :: Generator
g => B.ByteString -> NameType Field -> g
()
+getStaticField :: Generator
e g => B.ByteString -> NameType Field -> g e
()
getStaticField cls sig =
i1 GETSTATIC (CField cls sig)
getStaticField cls sig =
i1 GETSTATIC (CField cls sig)
-loadString :: Generator
g => B.ByteString -> g
()
+loadString :: Generator
e g => B.ByteString -> g e
()
loadString str =
i8 LDC1 (CString str)
loadString str =
i8 LDC1 (CString str)
-allocArray :: Generator
g => B.ByteString -> g
()
+allocArray :: Generator
e g => B.ByteString -> g e
()
allocArray cls =
i1 ANEWARRAY (CClass cls)
allocArray cls =
i1 ANEWARRAY (CClass cls)