:- module('Lcm_lcm_pe',[main/2],[]).

:- discontiguous bytecode/5, class/2.

bytecode(0,'0',0,aload(0),1).
bytecode(1,'0',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'0',0,return,1).
bytecode(0,'0',1,iload(0),1).
bytecode(1,'0',1,iload(1),1).
bytecode(2,'0',1,invokestatic(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int))),3).
bytecode(5,'0',1,istore(2),1).
bytecode(6,'0',1,iload(0),1).
bytecode(7,'0',1,iload(1),1).
bytecode(8,'0',1,ibinop(mulInt),1).
bytecode(9,'0',1,istore(3),1).
bytecode(10,'0',1,iload(3),1).
bytecode(11,'0',1,iload(2),1).
bytecode(12,'0',1,ibinop(divInt),1).
bytecode(13,'0',1,ireturn,1).
bytecode(0,'0',2,iload(1),1).
bytecode(1,'0',2,if0(eqInt,14),3).
bytecode(4,'0',2,iload(0),1).
bytecode(5,'0',2,iload(1),1).
bytecode(6,'0',2,ibinop(remInt),1).
bytecode(7,'0',2,istore(2),1).
bytecode(8,'0',2,iload(1),1).
bytecode(9,'0',2,istore(0),1).
bytecode(10,'0',2,iload(2),1).
bytecode(11,'0',2,istore(1),1).
bytecode(12,'0',2,goto(-12),3).
bytecode(15,'0',2,iload(0),1).
bytecode(16,'0',2,ireturn,1).
class('0',class(className(packageName(''),shortClassName('Lcm')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('0',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName(lcm)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('0',1),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(3,2,0,methodId('0',2),[]),final(false),static(true),public)])).

bytecode(0,'1',0,aload(0),1).
bytecode(1,'1',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'1',0,return,1).
bytecode(0,'1',1,iload(1),1).
bytecode(1,'1',1,if0(eqInt,14),3).
bytecode(4,'1',1,iload(0),1).
bytecode(5,'1',1,iload(1),1).
bytecode(6,'1',1,ibinop(remInt),1).
bytecode(7,'1',1,istore(2),1).
bytecode(8,'1',1,iload(1),1).
bytecode(9,'1',1,istore(0),1).
bytecode(10,'1',1,iload(2),1).
bytecode(11,'1',1,istore(1),1).
bytecode(12,'1',1,goto(-12),3).
bytecode(15,'1',1,iload(0),1).
bytecode(16,'1',1,ireturn,1).
class('1',class(className(packageName(''),shortClassName('Gcd')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName(''),shortClassName('Gcd')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('1',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Gcd')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(3,2,0,methodId('1',1),[]),final(false),static(true),public)])).

bytecode(0,'Object',0,return,1).
class('Object',class(className(packageName('java/lang/'),shortClassName('Object')),final(false),public(false),abstract(false),none,[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('Object',0),[]),final(false),static(false),public)])).

bytecode(0,'String',0,aload(0),1).
bytecode(1,'String',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'String',0,return,1).
class('String',class(className(packageName('java/lang/'),shortClassName('String')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('String')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('String',0),[]),final(false),static(false),private)])).

bytecode(0,'NullPointerException',0,aload(0),1).
bytecode(1,'NullPointerException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'NullPointerException',0,return,1).
class('NullPointerException',class(className(packageName('java/lang/'),shortClassName('NullPointerException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NullPointerException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NullPointerException',0),[]),final(false),static(false),private)])).

bytecode(0,'ArrayStoreException',0,aload(0),1).
bytecode(1,'ArrayStoreException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArrayStoreException',0,return,1).
class('ArrayStoreException',class(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayStoreException',0),[]),final(false),static(false),private)])).

bytecode(0,'ArrayIndexOutOfBoundsException',0,aload(0),1).
bytecode(1,'ArrayIndexOutOfBoundsException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArrayIndexOutOfBoundsException',0,return,1).
class('ArrayIndexOutOfBoundsException',class(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayIndexOutOfBoundsException',0),[]),final(false),static(false),private)])).

bytecode(0,'NegativeArraySizeException',0,aload(0),1).
bytecode(1,'NegativeArraySizeException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'NegativeArraySizeException',0,return,1).
class('NegativeArraySizeException',class(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NegativeArraySizeException',0),[]),final(false),static(false),private)])).

bytecode(0,'ClassCastException',0,aload(0),1).
bytecode(1,'ClassCastException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ClassCastException',0,return,1).
class('ClassCastException',class(className(packageName('java/lang/'),shortClassName('ClassCastException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ClassCastException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ClassCastException',0),[]),final(false),static(false),private)])).

bytecode(0,'ArithmeticException',0,aload(0),1).
bytecode(1,'ArithmeticException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArithmeticException',0,return,1).
class('ArithmeticException',class(className(packageName('java/lang/'),shortClassName('ArithmeticException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArithmeticException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArithmeticException',0),[]),final(false),static(false),private)])).

source_program(program([class(className(packageName(''),shortClassName('Lcm')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('0',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName(lcm)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('0',1),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(3,2,0,methodId('0',2),[]),final(false),static(true),public)]),class(className(packageName(''),shortClassName('Gcd')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName(''),shortClassName('Gcd')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('1',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Gcd')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(3,2,0,methodId('1',1),[]),final(false),static(true),public)]),class(className(packageName('java/lang/'),shortClassName('Object')),final(false),public(false),abstract(false),none,[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('Object',0),[]),final(false),static(false),public)]),class(className(packageName('java/lang/'),shortClassName('String')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('String')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('String',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('NullPointerException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NullPointerException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NullPointerException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayStoreException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayIndexOutOfBoundsException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NegativeArraySizeException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ClassCastException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ClassCastException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ClassCastException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArithmeticException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArithmeticException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArithmeticException',0),[]),final(false),static(false),private)])],[])).

:- include(library('jvm_in_ciao/interpreter/pe_i.pl')).

current_mis(mis(methodSignature(methodName(className(packageName(''),shortClassName('Lcm')),shortMethodName(lcm)),[primitiveType(int),primitiveType(int)],primitiveType(int)),[num(int(_)),num(int(_))],heap(dynamicHeap([]),staticHeap([])))).
options([top]).
