/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "compile_to_jvm.h"
void r999error_comparison(T999* C,T0* a1){
r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms7_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms8_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((((T999*)C))->_current_type/*8*/,((T0*)ms67_470));
r683print_as_error(((T683*)(oBC364eh)));
}
/*No:CALL_INFIX_EQ.arguments*/
T0* r999add_comment(T999* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r999to_integer(T999* C){
int R=0;
r999error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r999is_a(T999* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T999*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
r999error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_EQ.is_current*/
/*No:CALL_INFIX_EQ.jvm_branch_if_false*/
void r999jvm_standard_is_equal_aux(T0* a1,T0* a2){
int _i=0;
int _space=0;
int _idx=0;
int _point2=0;
int _point1=0;
T0* _rf2=NULL;
T0* _ca=NULL;
_ca=oBC364code_attribute;
/*IF*/if ((a2)==((void*)(NULL))) {
/*IF*/if (X291is_expanded((((T355*)((T355*)a1)))->_current_type/*0*/)) {
/*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
/*]*/
/*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
/*]*/
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
/*]*/
}
else {
/*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
/*]*/
/*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
/*]*/
_idx=r355fully_qualified_constant_pool_index(((T355*)a1));
r256opcode_instanceof(((T256*)_ca),_idx);
}
/*FI*/}
else {
/*[IRF3.3clear*/((((T226*)(((T226*)(oBC256branches)))))->_upper)=(-(1));
/*]*/
/*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
/*]*/
_idx=r355fully_qualified_constant_pool_index(((T355*)a1));
r256opcode_instanceof(((T256*)_ca),_idx);
r226add_last(((T226*)(oBC256branches)),r256opcode_ifeq(((T256*)_ca)));
_i=(((T280*)((T280*)a2)))->_upper/*12*/;
while (!((_i)==(0))) {
_rf2=r280item(((T280*)a2),_i);
_idx=r95idx_fieldref(((T95*)(oBC364constant_pool)),_rf2);
_space=(X291jvm_stack_space((((T820*)((T820*)_rf2)))->_result_type/*24*/))-(1);
/*IF*/if ((_i)>(1)) {
/*[IRF3.4opcode_dup2*/r256opcode(((T256*)_ca),92,2);
/*]*/
}
/*FI*/r256opcode_getfield(((T256*)_ca),_idx,_space);
/*IF*/if ((_space)==(0)) {
/*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
/*]*/
}
else {
/*[IRF3.4opcode_dup2_x1*/r256opcode(((T256*)_ca),93,2);
/*]*/
/*[IRF3.4opcode_pop2*/r256opcode(((T256*)_ca),88,-(2));
/*]*/
}
/*FI*/r256opcode_getfield(((T256*)_ca),_idx,_space);
/*IF*/if ((_i)>(1)) {
r226add_last(((T226*)(oBC256branches)),X291jvm_if_x_ne((((T820*)((T820*)_rf2)))->_result_type/*24*/));
}
else {
_point1=X291jvm_if_x_ne((((T820*)((T820*)_rf2)))->_result_type/*24*/);
}
/*FI*/_i=(_i)-(1);
}
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
/*]*/
_point2=r256opcode_goto(((T256*)_ca));
/*[IRF3.2resolve_branches*/r256resolve_with(oBC256branches);
/*]*/
/*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
/*]*/
/*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
/*]*/
r256resolve_u2_branch(_point1);
/*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1);
/*]*/
r256resolve_u2_branch(_point2);
}
/*FI*/}
T0* r999type_boolean(void){
if (fBC364type_boolean==0){
T0* R=NULL;
fBC364type_boolean=1;
{T707*n=malloc(sizeof(*n));
*n=M707;
r707make(n,NULL);
R=(T0*)n;
}
oBC364type_boolean=R;}
return oBC364type_boolean;}
/*No:CALL_INFIX_EQ.static_value*/
void r999make(T999* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,r999operator(),a2);
C->_feature_name=(T0*)n;
}
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
/*]*/
_eal=(T0*)n;
}
r999make_call_1(C,a1,(((T999*)C))->_feature_name/*28*/,_eal);
}
/*No:CALL_INFIX_EQ.nb_errors*/
void r999to_runnable_equal_not_equal(T999* C,T0* a1){
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
C->_current_type=a1;
_t=X662to_runnable((((T999*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r999error(X662start_position((((T999*)C))->_target/*12*/),((T0*)ms1_841));
}
else {
C->_target=_t;
}
/*FI*/_a=r431to_runnable(((T431*)((((T999*)C))->_arguments/*24*/)),a1);
/*IF*/if ((_a)!=((void*)(NULL))) {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tt=X291run_type(X662result_type((((T999*)C))->_target/*12*/));
_at=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/));
/*IF*/if (X291is_none(_tt)) {
/*IF*/if (X291is_expanded(_at)) {
X291used_as_reference(_at);
}
/*FI*/}
 else if (X291is_none(_at)) {
/*IF*/if (X291is_expanded(_tt)) {
X291used_as_reference(_tt);
}
/*FI*/}
 else if (X291is_reference(_tt)) {
/*IF*/if (X291is_reference(_at)) {
/*IF*/if (X291is_a(_tt,_at)) {
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_a(_at,_tt)) {
}
else {
r999error_comparison(C,((T0*)ms2_841));
}
/*FI*/}
/*FI*/}
 else if (!(X291is_a(_at,_tt))) {
r999error_comparison(C,((T0*)ms3_841));
}
else {
X291used_as_reference(_at);
}
/*FI*/}
else {
/*IF*/if (X291is_expanded(_at)) {
/*IF*/if (X291is_basic_eiffel_expanded(_at)) {
/*IF*/if (X291is_a(_tt,_at)) {
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_a(_at,_tt)) {
}
else {
r999error_comparison(C,((T0*)ms4_841));
}
/*FI*/}
/*FI*/}
 else if (X291is_bit(_tt)) {
r999bit_limitation(C,_tt,_at);
}
 else if (!(X291is_a(_at,_tt))) {
r999error_comparison(C,((T0*)ms5_841));
}
/*FI*/}
 else if (!(X291is_a(_tt,_at))) {
r999error_comparison(C,((T0*)ms6_841));
}
else {
X291used_as_reference(_tt);
}
/*FI*/}
/*FI*/}
/*FI*/}
/*No:CALL_INFIX_EQ.feature_name*/
/*No:CALL_INFIX_EQ.compile_to_jvm_assignment*/
/*No:CALL_INFIX_EQ.fz_iinaiv*/
/*No:CALL_INFIX_EQ.arg_count*/
/*No:CALL_INFIX_EQ.jvm_branch_if_true*/
/*No:CALL_INFIX_EQ.run_feature*/
/*No:CALL_INFIX_EQ.start_position*/
void r999compile_to_jvm_old(T999* C){
X662compile_to_jvm_old((((T999*)C))->_target/*12*/);
/*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T999*)C))->_arguments/*24*/)));
}
/*FI*/}
/*No:CALL_INFIX_EQ.target*/
T0* r999to_runnable(T999* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T999*)C))->_current_type/*8*/)==((void*)(NULL))) {
r999to_runnable_equal_not_equal(C,a1);
C->_result_type=r999type_boolean();
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T999*n=malloc(sizeof(*n));
*n=M999;
r999make(n,(((T999*)C))->_target/*12*/,(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/,/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/);
R=(T0*)n;
}
R=r999to_runnable(((T999*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_EQ.result_type*/
/*No:CALL_INFIX_EQ.is_result*/
T0* r999operator(void){
T0* R=NULL;
R=((T0*)ms31_473);
return R;
}
int r999is_static(T999* C){
int R=0;
/*IF*/if (X662is_void((((T999*)C))->_target/*12*/)) {
R=r999is_static_eq_void(C,/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/);
}
 else if (X662is_void(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/)) {
R=r999is_static_eq_void(C,(((T999*)C))->_target/*12*/);
}
 else if ((X662is_static((((T999*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/))) {
R=1;
/*IF*/if ((X662static_value((((T999*)C))->_target/*12*/))==(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/))) {
C->_static_value_mem=1;
}
/*FI*/}
/*FI*/return R;
}
void r999standard_compile_target_to_jvm(T999* C){
r999compile_to_jvm(C);
X291jvm_check_class_invariant((((T999*)C))->_result_type/*20*/);
}
int r999compile_to_jvm_into(T999* C,T0* a1){
int R=0;
R=r999standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_EQ.compile_target_to_jvm*/
int r999is_static_eq_void(T999* C,T0* a1){
int R=0;
T0* _rt=NULL;
/*IF*/if (X662is_current(a1)) {
R=1;
}
 else if (X662is_manifest_string(a1)) {
R=1;
}
 else if (r999is_manifest_array(a1)) {
R=1;
}
else {
_rt=X291run_type(X662result_type(a1));
/*IF*/if (X291is_expanded(_rt)) {
/*IF*/if (X662can_be_dropped(a1)) {
R=1;
}
/*FI*/}
 else if (X662is_static(a1)) {
/*IF*/if ((X662static_value(a1))==(0)) {
R=1;
C->_static_value_mem=1;
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:CALL_INFIX_EQ.can_be_dropped*/
void r999bit_limitation(T999* C,T0* a1,T0* a2){
T0* _b2=NULL;
T0* _b1=NULL;
_b1=a1;
if(NULL!=(_b1))switch(((T0*)_b1)->id) {
case 549: case 558: 
break;
default:
_b1=NULL;
};_b2=a2;
if(NULL!=(_b2))switch(((T0*)_b2)->id) {
case 549: case 558: 
break;
default:
_b2=NULL;
};/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) {
r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms9_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(_b1,((T0*)ms10_841));
r683add_type(_b2,((T0*)ms11_841));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/}
/*No:CALL_INFIX_EQ.current_type*/
/*No:CALL_INFIX_EQ.jvm_assign*/
/*No:CALL_INFIX_EQ.static_value_mem*/
void r999make_call_1(T999* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_EQ.is_manifest_string*/
/*No:CALL_INFIX_EQ.us_eq*/
/*No:CALL_INFIX_EQ.is_void*/
int r999is_manifest_array(T0* a1){
int R=0;
T0* _ma=NULL;
_ma=a1;
if(NULL!=(_ma))switch(((T0*)_ma)->id) {
case 436: 
break;
default:
_ma=NULL;
};R=(_ma)!=((void*)(NULL));
return R;
}
int r999jvm_standard_branch_if_false(T999* C){
int R=0;
r999compile_to_jvm(C);
R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
return R;
}
/*No:CALL_INFIX_EQ.fz_dot*/
void r999compile_to_jvm(T999* C){
T0* _rc=NULL;
T0* _rt=NULL;
int _point2=0;
int _point1=0;
int _space=0;
/*IF*/if (X662is_void((((T999*)C))->_target/*12*/)) {
r999jvm_void_cmp(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/);
}
 else if (X662is_void(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/)) {
r999jvm_void_cmp((((T999*)C))->_target/*12*/);
}
else {
_rt=X291smallest_ancestor(X662result_type((((T999*)C))->_target/*12*/),X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/));
_space=X662compile_to_jvm_into((((T999*)C))->_target/*12*/,_rt);
_space=X662compile_to_jvm_into(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/,_rt);
/*IF*/if (X291is_user_expanded(_rt)) {
_rc=X291run_class(_rt);
r999jvm_standard_is_equal_aux(_rc,r355writable_attributes(((T355*)_rc)));
}
else {
_point1=X291jvm_if_x_eq(_rt);
/*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
/*]*/
_point2=r256opcode_goto(((T256*)(oBC364code_attribute)));
r256resolve_u2_branch(_point1);
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
/*]*/
r256resolve_u2_branch(_point2);
}
/*FI*/}
/*FI*/}
void r999jvm_void_cmp(T0* a1){
int _space=0;
int _point2=0;
int _point1=0;
T0* _rt=NULL;
_rt=X291run_type(X662result_type(a1));
/*IF*/if (X291is_expanded(_rt)) {
X662compile_to_jvm(a1);
_space=X291jvm_stack_space(_rt);
while (!((_space)==(0))) {
/*[IRF3.4opcode_pop*/r256opcode(((T256*)(oBC364code_attribute)),87,-(1));
/*]*/
_space=(_space)-(1);
}
/*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
/*]*/
}
else {
X662compile_to_jvm(a1);
_point1=r256opcode_ifnull(((T256*)(oBC364code_attribute)));
/*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
/*]*/
_point2=r256opcode_goto(((T256*)(oBC364code_attribute)));
r256resolve_u2_branch(_point1);
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
/*]*/
r256resolve_u2_branch(_point2);
}
/*FI*/}
/*No:CALL_INFIX_EQ.is_pre_computable*/
int r999jvm_standard_branch_if_true(T999* C){
int R=0;
r999compile_to_jvm(C);
R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
return R;
}
int r999use_current(T999* C){
int R=0;
R=(X662use_current((((T999*)C))->_target/*12*/))||(X662use_current(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/));
return R;
}
void r999error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_EQ.isa_dca_inline_argument*/
/*No:CALL_INFIX_EQ.fatal_error*/
/*No:CALL_INFIX_EQ.arg1*/
int r999standard_compile_to_jvm_into(T999* C,T0* a1){
int R=0;
r999compile_to_jvm(C);
R=X291jvm_convert_to(X291run_type((((T999*)C))->_result_type/*20*/),a1);
return R;
}
void r999afd_check(T999* C){
X662afd_check((((T999*)C))->_target/*12*/);
X662afd_check(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/);
}
/*No:CODE_ATTRIBUTE.opcode_fconst_0*/
/*No:CODE_ATTRIBUTE.opcode_dconst_0*/
/*No:CODE_ATTRIBUTE.opcode_iconst_0*/
int r256opcode_goto(T256* C){
int R=0;
r256opcode(C,167,0);
R=r256skip_2_bytes();
return R;
}
int r256skip_2_bytes(void){
int R=0;
R=/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/;
r226add_last(((T226*)(oBC256code)),0);
r226add_last(((T226*)(oBC256code)),0);
return R;
}
/*No:CODE_ATTRIBUTE.opcode_dup_x2*/
void r256opcode_invokespecial(T256* C,int a1,int a2){
r256opcode(C,183,a2);
r256add_u2(a1);
}
int r256opcode_ifgt(T256* C){
int R=0;
r256opcode(C,157,-(1));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.check_flag_idx*/
/*No:CODE_ATTRIBUTE.opcode_fdiv*/
/*No:CODE_ATTRIBUTE.opcode_astore_1*/
void r256opcode_invokestatic(T256* C,int a1,int a2){
r256opcode(C,184,a2);
r256add_u2(a1);
}
/*No:CODE_ATTRIBUTE.opcode_aconst_null*/
/*No:CODE_ATTRIBUTE.max_locals*/
/*No:CODE_ATTRIBUTE.opcode_dcmpg*/
/*No:CODE_ATTRIBUTE.program_counter*/
/*No:CODE_ATTRIBUTE.opcode_fadd*/
/*No:CODE_ATTRIBUTE.opcode_irem*/
/*No:CODE_ATTRIBUTE.opcode_dneg*/
/*No:CODE_ATTRIBUTE.add_u1*/
int r256opcode_if_icmpgt(T256* C){
int R=0;
r256opcode(C,163,-(2));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_iconst_1*/
/*No:CODE_ATTRIBUTE.append_u1*/
int r256opcode_if_icmpne(T256* C){
int R=0;
r256opcode(C,160,-(2));
R=r256skip_2_bytes();
return R;
}
T0*oBC256code=NULL;
void r256add_u2(int a1){
/*[IRF3.6add_u1*/{int b1=(a1)/(256);
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*[IRF3.6add_u1*/{int b1=(a1)%(256);
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*No:CODE_ATTRIBUTE.opcode_dsub*/
/*No:CODE_ATTRIBUTE.opcode_freturn*/
/*No:CODE_ATTRIBUTE.opcode_dreturn*/
/*No:CODE_ATTRIBUTE.opcode_ireturn*/
/*No:CODE_ATTRIBUTE.opcode_areturn*/
void r256opcode_system_err(T256* C){
int _idx=0;
_idx=r95idx_fieldref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms175_470),((T0*)ms172_470));
r256opcode_getstatic(C,_idx,1);
}
/*No:CODE_ATTRIBUTE.opcode_dup2*/
void r256append_u2(T0* a1,int a2){
/*[IRF3.6append_u1*/{T0* b1=a1;
int b2=(a2)/(256);
r7extend(((T7*)b1),((char)(b2)));
}/*]*/
/*[IRF3.6append_u1*/{T0* b1=a1;
int b2=(a2)%(256);
r7extend(((T7*)b1),((char)(b2)));
}/*]*/
}
/*No:CODE_ATTRIBUTE.opcode_fcmpg*/
void r256push_strange_integer(T256* C,int a1){
T0* _cp=NULL;
int _idx=0;
_cp=oBC364constant_pool;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC256tmp_string)))))->_count)=(0);
/*]*/
r2append_in(a1,oBC256tmp_string);
_idx=r95idx_string(((T95*)_cp),oBC256tmp_string);
r256opcode_ldc(C,_idx);
_idx=r95idx_methodref3(((T95*)_cp),((T0*)ms207_470),((T0*)ms208_470),((T0*)ms209_470));
r256opcode_invokestatic(C,_idx,0);
}
void r256opcode_aload(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(42)+(a1),1);
}
else {
r256opcode(C,25,1);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
/*No:CODE_ATTRIBUTE.opcode_idiv*/
void r256check_opening(T256* C){
T0* _cp=NULL;
_cp=oBC364constant_pool;
C->_check_flag_idx=r95idx_fieldref3(((T95*)_cp),r256jvm_root_class(),((T0*)ms184_470),((T0*)ms173_470));
r256opcode_getstatic(C,(((T256*)C))->_check_flag_idx/*16*/,1);
C->_skip_check=r256opcode_ifne(C);
/*[IRF3.4opcode_iconst_1*/r256opcode(C,4,1);
/*]*/
r256opcode_putstatic(C,(((T256*)C))->_check_flag_idx/*16*/,-(1));
}
/*No:CODE_ATTRIBUTE.opcode_fneg*/
int r256opcode_ifle(T256* C){
int R=0;
r256opcode(C,158,-(1));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_iushr*/
T0* r256jvm_root_class(void){
if (fBC364jvm_root_class==0){
T0* R=NULL;
fBC364jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
R=(T0*)n;
}
r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
r7extend(((T7*)R),'\57');
r7append(((T7*)R),((T0*)ms112_470));
oBC364jvm_root_class=R;}
return oBC364jvm_root_class;}
void r256opcode_bytes_array2eiffel_string(T256* C){
int _loc=0;
T0* _cp=NULL;
_cp=oBC364constant_pool;
_loc=r256extra_local_size1(C);
r256opcode_astore(C,_loc);
r256opcode_new(C,r95idx_eiffel_string_class(((T95*)_cp)));
/*[IRF3.4opcode_dup*/r256opcode(C,89,1);
/*]*/
r256opcode_aload(C,_loc);
/*[IRF3.4opcode_arraylength*/r256opcode(C,190,0);
/*]*/
r256opcode_putfield(C,r95idx_eiffel_string_count_fieldref(((T95*)_cp)),-(2));
/*[IRF3.4opcode_dup*/r256opcode(C,89,1);
/*]*/
r256opcode_aload(C,_loc);
/*[IRF3.4opcode_arraylength*/r256opcode(C,190,0);
/*]*/
r256opcode_putfield(C,r95idx_eiffel_string_capacity_fieldref(((T95*)_cp)),-(2));
/*[IRF3.4opcode_dup*/r256opcode(C,89,1);
/*]*/
r256opcode_aload(C,_loc);
r256opcode_putfield(C,r95idx_eiffel_string_storage_fieldref(((T95*)_cp)),-(2));
}
void r256opcode_java_string2eiffel_string(T256* C){
r256opcode_java_string2bytes_array(C);
r256opcode_bytes_array2eiffel_string(C);
}
/*No:CODE_ATTRIBUTE.opcode_iconst_i*/
void r256opcode_runtime_get_runtime(T256* C){
int _idx=0;
_idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms179_470),((T0*)ms181_470),((T0*)ms182_470));
r256opcode_invokestatic(C,_idx,1);
}
/*No:CODE_ATTRIBUTE.opcode_fsub*/
/*No:CODE_ATTRIBUTE.opcode_iadd*/
/*No:CODE_ATTRIBUTE.opcode_astore_3*/
/*No:CODE_ATTRIBUTE.opcode_ishl*/
/*No:CODE_ATTRIBUTE.opcode_aaload*/
void r256opcode_system_err_println(T256* C,int a1){
r256opcode_system_err(C);
r256opcode_println(C,a1);
}
void r256resolve_with(T0* a1){
int _i=0;
_i=(((T226*)((T226*)a1)))->_upper/*8*/;
while (!((_i)<(0))) {
r256resolve_u2_branch(/*(IRF4.6item*/((((T226*)((T226*)a1)))->_storage/*0*/)[_i]/*)*/);
_i=(_i)-(1);
}
}
void r256append_u4(T0* a1,int a2){
r256append_u2(a1,(a2)/(65536));
r256append_u2(a1,(a2)%(65536));
}
void r256opcode_println(T256* C,int a1){
int _idx=0;
r256opcode_ldc(C,a1);
_idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms157_470),((T0*)ms177_470),((T0*)ms183_470));
r256opcode_invokevirtual(C,_idx,-(2));
}
void r256store_in(T256* C,T0* a1){
int _i=0;
r256append_u2(a1,(((T95*)((T95*)(oBC364constant_pool))))->_idx_uft8_code/*4*/);
r256append_u4(a1,(12)+(/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/));
r256append_u2(a1,(((T256*)C))->_max_stack/*0*/);
r256append_u2(a1,(((T256*)C))->_max_locals/*8*/);
r256append_u4(a1,/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/);
_i=0;
while (!((_i)>((((T226*)((T226*)(oBC256code))))->_upper/*8*/))) {
/*[IRF3.6append_u1*/{T0* b1=a1;
int b2=/*(IRF4.6item*/((((T226*)((T226*)(oBC256code))))->_storage/*0*/)[_i]/*)*/;
r7extend(((T7*)b1),((char)(b2)));
}/*]*/
_i=(_i)+(1);
}
r613store_in(a1);
r256append_u2(a1,0);
}
void r256opcode_push_manifest_string(T256* C,T0* a1){
int _ms_idx=0;
_ms_idx=r95idx_string2(((T95*)(oBC364constant_pool)),a1);
r256opcode_ldc(C,_ms_idx);
r256opcode_java_string2eiffel_string(C);
}
/*No:CODE_ATTRIBUTE.opcode_baload*/
int r256opcode_ifnull(T256* C){
int R=0;
r256opcode(C,198,-(1));
R=r256skip_2_bytes();
return R;
}
T0*oBC256exception_table=NULL;
int r256opcode_if_icmpge(T256* C){
int R=0;
r256opcode(C,162,-(2));
R=r256skip_2_bytes();
return R;
}
void r256opcode_dload(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(38)+(a1),2);
}
else {
r256opcode(C,24,2);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
int r256opcode_ifne(T256* C){
int R=0;
r256opcode(C,154,-(1));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_ineg*/
int r256opcode_iflt(T256* C){
int R=0;
r256opcode(C,155,-(1));
R=r256skip_2_bytes();
return R;
}
void r256opcode_iinc(T256* C,int a1,int a2){
r256opcode(C,132,0);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*[IRF3.6add_u1*/{int b1=a2;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
void r256opcode_push_as_float(T256* C,T0* a1){
{int z1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(1)-(1)]/*)*/;

if((48==z1)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) {
r256opcode(C,11,1);
}
else {
{int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/;

if((46==z2)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) {
r256opcode(C,11,1);
}
 else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) {
r256opcode(C,11,1);
}
else {
r256opcode_string2float(C,a1);
}
/*FI*/}
 else{r256opcode_string2float(C,a1);
}}
}
/*FI*/}
 else 
if((49==z1)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) {
r256opcode(C,12,1);
}
else {
{int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/;

if((46==z2)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) {
r256opcode(C,12,1);
}
 else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) {
r256opcode(C,12,1);
}
else {
r256opcode_string2float(C,a1);
}
/*FI*/}
 else{r256opcode_string2float(C,a1);
}}
}
/*FI*/}
 else 
if((50==z1)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) {
r256opcode(C,13,1);
}
else {
{int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/;

if((46==z2)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) {
r256opcode(C,13,1);
}
 else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) {
r256opcode(C,13,1);
}
else {
r256opcode_string2float(C,a1);
}
/*FI*/}
 else{r256opcode_string2float(C,a1);
}}
}
/*FI*/}
 else{r256opcode_string2float(C,a1);
}}
}
void r256opcode_runtime_trace_instructions(T256* C,int a1){
int _idx=0;
r256opcode_runtime_get_runtime(C);
/*IF*/if (a1) {
/*[IRF3.4opcode_iconst_1*/r256opcode(C,4,1);
/*]*/
}
else {
/*[IRF3.4opcode_iconst_0*/r256opcode(C,3,1);
/*]*/
}
/*FI*/_idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms179_470),((T0*)ms178_470),((T0*)ms180_470));
r256opcode_invokevirtual(C,_idx,-(2));
}
/*No:CODE_ATTRIBUTE.opcode_athrow*/
/*No:CODE_ATTRIBUTE.opcode_isub*/
/*No:CODE_ATTRIBUTE.opcode_dup2_x1*/
void r256opcode_sipush(T256* C,int a1){
r256opcode(C,17,1);
r256add_u2(a1);
}
void r256clear(T256* C){
/*[IRF3.3clear*/((((T226*)(((T226*)(oBC256code)))))->_upper)=(-(1));
/*]*/
/*[IRF3.2clear*//*[IRF3.3clear*/((((T226*)(((T226*)(oBC613from_pc)))))->_upper)=(-(1));
/*]*/
/*[IRF3.3clear*/((((T226*)(((T226*)(oBC613to_pc)))))->_upper)=(-(1));
/*]*/
/*[IRF3.3clear*/((((T226*)(((T226*)(oBC613handler_pc)))))->_upper)=(-(1));
/*]*/
/*[IRF3.3clear*/((((T226*)(((T226*)(oBC613type_idx)))))->_upper)=(-(1));
/*]*/
/*]*/
C->_max_stack=0;
C->_current_stack_level=0;
C->_max_locals=r228max_locals(((T228*)(oBC364jvm)));
}
/*No:CODE_ATTRIBUTE.opcode_daload*/
/*No:CODE_ATTRIBUTE.opcode_dload_0*/
/*No:CODE_ATTRIBUTE.opcode_pop2*/
void r256opcode_instanceof(T256* C,int a1){
r256opcode(C,193,0);
r256add_u2(a1);
}
void r256opcode_system_exit(T256* C){
int _idx=0;
_idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms102_470),((T0*)ms159_470));
r256opcode_invokestatic(C,_idx,0);
}
/*No:CODE_ATTRIBUTE.opcode_aload_0*/
void r256opcode_fload(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(34)+(a1),1);
}
else {
r256opcode(C,23,1);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
void r256opcode_newarray(T256* C,int a1){
r256opcode(C,188,0);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*No:CODE_ATTRIBUTE.fz_40*/
/*No:CODE_ATTRIBUTE.max_stack*/
void r256opcode_getfield(T256* C,int a1,int a2){
r256opcode(C,180,a2);
r256add_u2(a1);
}
void r256opcode_putfield(T256* C,int a1,int a2){
r256opcode(C,181,a2);
r256add_u2(a1);
}
/*No:CODE_ATTRIBUTE.opcode_dup*/
int r256opcode_if_acmpne(T256* C){
int R=0;
r256opcode(C,166,-(2));
R=r256skip_2_bytes();
return R;
}
T0*oBC256branches=NULL;
/*No:CODE_ATTRIBUTE.fz_41*/
/*No:CODE_ATTRIBUTE.fz_32*/
void r256opcode_invokevirtual(T256* C,int a1,int a2){
r256opcode(C,182,a2);
r256add_u2(a1);
}
/*No:CODE_ATTRIBUTE.fz_60*/
void r256opcode_bipush(T256* C,int a1){
r256opcode(C,16,1);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*No:CODE_ATTRIBUTE.fz_51*/
/*No:CODE_ATTRIBUTE.opcode_ior*/
void r256opcode_new(T256* C,int a1){
r256opcode(C,187,1);
r256add_u2(a1);
}
/*No:CODE_ATTRIBUTE.skip_check*/
/*No:CODE_ATTRIBUTE.fz_33*/
void r256opcode_astore(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(75)+(a1),-(1));
}
else {
r256opcode(C,58,-(1));
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
int r256opcode_if_icmpeq(T256* C){
int R=0;
r256opcode(C,159,-(2));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.fz_61*/
void r256opcode_java_string2bytes_array(T256* C){
int _idx=0;
_idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms164_470),((T0*)ms165_470),((T0*)ms166_470));
r256opcode_invokevirtual(C,_idx,0);
}
/*No:CODE_ATTRIBUTE.fz_52*/
/*No:CODE_ATTRIBUTE.opcode_dmul*/
/*No:CODE_ATTRIBUTE.opcode_aload_1*/
/*No:CODE_ATTRIBUTE.opcode_faload*/
/*No:CODE_ATTRIBUTE.opcode_f2d*/
/*No:CODE_ATTRIBUTE.fz_34*/
/*No:CODE_ATTRIBUTE.fz_62*/
T0*oBC256tmp_string=NULL;
/*No:CODE_ATTRIBUTE.fz_25*/
/*No:CODE_ATTRIBUTE.fz_53*/
/*No:CODE_ATTRIBUTE.opcode_i2b*/
/*No:CODE_ATTRIBUTE.fz_81*/
/*No:CODE_ATTRIBUTE.opcode_d2f*/
/*No:CODE_ATTRIBUTE.resolve_branches*/
/*No:CODE_ATTRIBUTE.fz_54*/
/*No:CODE_ATTRIBUTE.opcode_iconst_m1*/
/*No:CODE_ATTRIBUTE.fz_82*/
void r256opcode_iload(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(26)+(a1),1);
}
else {
r256opcode(C,21,1);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
/*No:CODE_ATTRIBUTE.fz_36*/
void r256opcode_anewarray(T256* C,int a1){
r256opcode(C,189,0);
r256add_u2(a1);
}
/*No:CODE_ATTRIBUTE.fz_27*/
/*No:CODE_ATTRIBUTE.fz_55*/
/*No:CODE_ATTRIBUTE.opcode_fastore*/
/*No:CODE_ATTRIBUTE.opcode_iastore*/
/*No:CODE_ATTRIBUTE.opcode_dastore*/
/*No:CODE_ATTRIBUTE.opcode_bastore*/
/*No:CODE_ATTRIBUTE.opcode_aastore*/
/*No:CODE_ATTRIBUTE.fz_83*/
int r256opcode_if_icmplt(T256* C){
int R=0;
r256opcode(C,161,-(2));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.fz_37*/
/*No:CODE_ATTRIBUTE.opcode_aload_2*/
int r256opcode_ifeq(T256* C){
int R=0;
r256opcode(C,153,-(1));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_fmul*/
/*No:CODE_ATTRIBUTE.fz_56*/
void r256opcode_push_as_double(T256* C,T0* a1){
{int z1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(1)-(1)]/*)*/;

if((48==z1)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) {
r256opcode(C,14,2);
}
else {
{int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/;

if((46==z2)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) {
r256opcode(C,14,2);
}
 else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) {
r256opcode(C,14,2);
}
else {
r256opcode_string2double(C,a1);
}
/*FI*/}
 else{r256opcode_string2double(C,a1);
}}
}
/*FI*/}
 else 
if((49==z1)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) {
r256opcode(C,15,2);
}
else {
{int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/;

if((46==z2)){
/*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) {
r256opcode(C,15,2);
}
 else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) {
r256opcode(C,15,2);
}
else {
r256opcode_string2double(C,a1);
}
/*FI*/}
 else{r256opcode_string2double(C,a1);
}}
}
/*FI*/}
 else{r256opcode_string2double(C,a1);
}}
}
/*No:CODE_ATTRIBUTE.fz_38*/
void r256opcode_dstore(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(71)+(a1),-(1));
}
else {
r256opcode(C,57,-(1));
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
/*No:CODE_ATTRIBUTE.fz_57*/
void r256opcode_string2double(T256* C,T0* a1){
int _idx=0;
_idx=r95idx_string(((T95*)(oBC364constant_pool)),a1);
r256opcode_ldc(C,_idx);
_idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms188_470),((T0*)ms186_470),((T0*)ms187_470));
r256opcode_invokestatic(C,_idx,0);
}
/*No:CODE_ATTRIBUTE.fz_39*/
/*No:CODE_ATTRIBUTE.opcode_iaload*/
/*No:CODE_ATTRIBUTE.opcode_i2d*/
/*No:CODE_ATTRIBUTE.fz_jvm_root*/
int r256opcode_ifnonnull(T256* C){
int R=0;
r256opcode(C,199,-(1));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.fz_58*/
/*No:CODE_ATTRIBUTE.opcode_arraylength*/
/*No:CODE_ATTRIBUTE.fz_49*/
/*No:CODE_ATTRIBUTE.opcode_aload_3*/
/*No:CODE_ATTRIBUTE.opcode_iload_3*/
/*No:CODE_ATTRIBUTE.current_stack_level*/
/*No:CODE_ATTRIBUTE.opcode_pop*/
/*No:CODE_ATTRIBUTE.fz_exit*/
void r256resolve_u2_branch(int a1){
int _offset=0;
_offset=((/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/)-(a1))+(1);
/*[IRF3.5put*/((((T226*)((T226*)(oBC256code))))->_storage/*0*/)[a1]=((_offset)/(256));
/*]*/
/*[IRF3.5put*/((((T226*)((T226*)(oBC256code))))->_storage/*0*/)[(a1)+(1)]=((_offset)%(256));
/*]*/
}
void r256opcode_fstore(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(67)+(a1),-(1));
}
else {
r256opcode(C,56,-(1));
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
/*No:CODE_ATTRIBUTE.opcode_d2i*/
void r256opcode(T256* C,int a1,int a2){
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
C->_current_stack_level=((((T256*)C))->_current_stack_level/*4*/)+(a2);
/*IF*/if (((((T256*)C))->_current_stack_level/*4*/)>((((T256*)C))->_max_stack/*0*/)) {
C->_max_stack=(((T256*)C))->_current_stack_level/*4*/;
}
/*FI*/}
/*No:CODE_ATTRIBUTE.opcode_imul*/
void r256opcode_system_out(T256* C){
int _idx=0;
_idx=r95idx_fieldref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms171_470),((T0*)ms172_470));
r256opcode_getstatic(C,_idx,1);
}
int r256extra_local(T256* C,T0* a1){
int R=0;
R=(((T256*)C))->_max_locals/*8*/;
C->_max_locals=((((T256*)C))->_max_locals/*8*/)+(X291jvm_stack_space(a1));
return R;
}
int r256opcode_ifge(T256* C){
int R=0;
r256opcode(C,156,-(1));
R=r256skip_2_bytes();
return R;
}
void r256opcode_putstatic(T256* C,int a1,int a2){
r256opcode(C,179,a2);
r256add_u2(a1);
}
void r256opcode_getstatic(T256* C,int a1,int a2){
r256opcode(C,178,a2);
r256add_u2(a1);
}
/*No:CODE_ATTRIBUTE.opcode_i2f*/
int r256opcode_if_icmple(T256* C){
int R=0;
r256opcode(C,164,-(2));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_return*/
void r256opcode_string2float(T256* C,T0* a1){
r256opcode_string2double(C,a1);
/*[IRF3.4opcode_d2f*/r256opcode(C,144,-(1));
/*]*/
}
/*No:CODE_ATTRIBUTE.opcode_swap*/
int r256opcode_if_acmpeq(T256* C){
int R=0;
r256opcode(C,165,-(2));
R=r256skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_ddiv*/
void r256opcode_system_in(T256* C){
int _idx=0;
_idx=r95idx_fieldref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms169_470),((T0*)ms170_470));
r256opcode_getstatic(C,_idx,1);
}
/*No:CODE_ATTRIBUTE.opcode_dup_x1*/
int r256extra_local_size1(T256* C){
int R=0;
R=(((T256*)C))->_max_locals/*8*/;
C->_max_locals=((((T256*)C))->_max_locals/*8*/)+(1);
return R;
}
void r256opcode_goto_backward(T256* C,int a1){
int _offset=0;
int _q=0;
int _r=0;
_offset=(/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/)-(a1);
r256opcode(C,167,0);
_r=(_offset)%(256);
_q=(_offset)/(256);
/*IF*/if ((_r)==(0)) {
/*[IRF3.6add_u1*/{int b1=(256)-(_q);
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*[IRF3.6add_u1*/{int b1=0;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
else {
/*[IRF3.6add_u1*/{int b1=(255)-(_q);
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*[IRF3.6add_u1*/{int b1=(256)-(_r);
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
void r256opcode_ldc(T256* C,int a1){
/*IF*/if ((a1)<(255)) {
r256opcode(C,18,1);
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
else {
r256opcode(C,19,1);
r256add_u2(a1);
}
/*FI*/}
/*No:CODE_ATTRIBUTE.opcode_iand*/
void r256opcode_push_integer(T256* C,int a1){
/*IF*/if ((a1)<(-(32768))) {
r256push_strange_integer(C,a1);
}
 else if ((a1)<(-(128))) {
r256opcode_sipush(C,a1);
}
 else if ((a1)<=(-(1))) {
r256opcode_bipush(C,a1);
}
 else if ((a1)<=(5)) {
/*[IRF3.6opcode_iconst_i*/{T256* C1=C;
int b1=a1;
r256opcode(C1,(3)+(b1),1);
}/*]*/
}
 else if ((a1)<=(127)) {
r256opcode_bipush(C,a1);
}
 else if ((a1)<=(32767)) {
r256opcode_sipush(C,a1);
}
else {
r256push_strange_integer(C,a1);
}
/*FI*/}
void r256check_closing(T256* C){
/*[IRF3.4opcode_iconst_0*/r256opcode(C,3,1);
/*]*/
r256opcode_putstatic(C,(((T256*)C))->_check_flag_idx/*16*/,-(1));
r256resolve_u2_branch((((T256*)C))->_skip_check/*12*/);
}
void r256opcode_istore(T256* C,int a1){
/*IF*/if ((a1)<=(3)) {
r256opcode(C,(59)+(a1),-(1));
}
else {
r256opcode(C,54,-(1));
/*[IRF3.6add_u1*/{int b1=a1;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
}
/*FI*/}
/*No:CODE_ATTRIBUTE.opcode_dadd*/
/*No:TYPE_GENERIC.fz_is_invalid*/
int r720id(T720* C){
int R=0;
R=(((T355*)((T355*)(r720run_class(C)))))->_id/*4*/;
return R;
}
void r720jvm_target_descriptor_in(T720* C,T0* a1){
/*IF*/if (r720is_dummy_expanded(C)) {
r7extend(((T7*)a1),'B');
}
/*FI*/}
/*No:TYPE_GENERIC.jvm_if_x_eq*/
int r720has_creation(T720* C,T0* a1){
int R=0;
R=r605has_creation(((T605*)(r720base_class(C))),a1);
return R;
}
/*No:TYPE_GENERIC.set_run_type_memory*/
/*No:TYPE_GENERIC.is_anchored*/
/*No:TYPE_GENERIC.is_array*/
int r720is_a(T720* C,T0* a1){
int R=0;
T0* _t2=NULL;
T0* _t1=NULL;
int _i=0;
/*IF*/if (X291is_none(a1)) {
}
 else if ((r720run_class(C))==((void*)(X291run_class(a1)))) {
R=1;
}
 else if (X291is_generic(a1)) {
/*IF*/if ((r720base_class(C))==((void*)(X291base_class(a1)))) {
R=1;
_i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
while (!((!(R))||((_i)==(0)))) {
_t1=X291run_type(r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i));
_t2=X291run_type(r701item(((T701*)(X291generic_list(a1))),_i));
/*IF*/if (X291is_a(_t1,_t2)) {
_i=(_i)-(1);
}
else {
R=0;
/*[IRF3.6append*/{T0* b1=((T0*)ms59_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
/*FI*/}
}
 else if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
R=r605is_a_vncg(((T605*)(r720base_class(C))),(T0*)C,a1);
}
/*FI*/}
else {
/*IF*/if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
R=1;
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms1_720));
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.jvm_to_reference*/
T0* r720run_type(T720* C){
T0* R=NULL;
/*IF*/if (r720is_run_type(C)) {
R=(((T720*)C))->_run_type_memory/*16*/;
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.is_pointer*/
int r720is_dummy_expanded(T720* C){
int R=0;
/*IF*/if (r720is_user_expanded(C)) {
R=(r355writable_attributes(((T355*)(r720run_class(C)))))==((void*)(NULL));
}
/*FI*/return R;
}
int r720jvm_push_default(T720* C){
int R=0;
R=1;
/*IF*/if (r720is_expanded(C)) {
r355jvm_expanded_push_default(((T355*)(r720run_class(C))));
}
else {
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.is_string*/
/*No:TYPE_GENERIC.is_like_feature*/
/*No:TYPE_GENERIC.is_like_current*/
void r720basic_checks(T720* C){
T0* _fgl=NULL;
T0* _bc=NULL;
_bc=r720base_class(C);
_fgl=(((T605*)((T605*)_bc)))->_formal_generic_list/*28*/;
/*IF*/if ((_fgl)==((void*)(NULL))) {
r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
/*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_720);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if ((/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/)!=(r701count(((T701*)((((T720*)C))->_generic_list/*8*/))))) {
r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
r683add_position((((T881*)((T881*)_fgl)))->_start_position/*0*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
void r720make(T720* C,T0* a1,T0* a2){
T0* _t=NULL;
int _i=0;
C->_base_class_name=a1;
C->_generic_list=a2;
r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)a1)))->_to_string/*0*/);
r7extend(((T7*)(oBC720tmp_mark)),'\133');
_i=1;
while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) {
_t=r701item(((T701*)a2),_i);
r7append(((T7*)(oBC720tmp_mark)),X291written_mark(_t));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) {
r7extend(((T7*)(oBC720tmp_mark)),'\54');
}
/*FI*/}
r7extend(((T7*)(oBC720tmp_mark)),'\135');
C->_written_mark=r902item(oBC720tmp_mark);
}
T0* r720jvm_root_class(void){
if (fBC364jvm_root_class==0){
T0* R=NULL;
fBC364jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
R=(T0*)n;
}
r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
r7extend(((T7*)R),'\57');
r7append(((T7*)R),((T0*)ms112_470));
oBC364jvm_root_class=R;}
return oBC364jvm_root_class;}
T0* r720type_any(void){
if (fBC364type_any==0){
T0* R=NULL;
fBC364type_any=1;
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,NULL);
R=(T0*)n;
}
oBC364type_any=R;}
return oBC364type_any;}
void r720jvm_return_code(T720* C){
/*IF*/if (r720is_expanded(C)) {
r355jvm_expanded_return_code(((T355*)(r720run_class(C))));
}
else {
/*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{int b1=176;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*]*/
}
/*FI*/}
/*No:TYPE_GENERIC.jvm_xnewarray*/
void r720jvm_descriptor_in(T720* C,T0* a1){
/*IF*/if (r720is_expanded(C)) {
r355jvm_expanded_descriptor_in(((T355*)(r720run_class(C))),a1);
}
else {
r7append(((T7*)a1),r720jvm_root_descriptor());
}
/*FI*/}
/*No:TYPE_GENERIC.start_position*/
/*No:TYPE_GENERIC.fz_inako*/
int r720is_user_expanded(T720* C){
int R=0;
R=(((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/;
return R;
}
/*No:TYPE_GENERIC.is_character*/
/*No:TYPE_GENERIC.written_mark*/
T0* r720to_runnable(T720* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
T0* _rgl=NULL;
int _i=0;
/*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
/*IF*/if (r720is_written_runnable(C)) {
C->_run_type_memory=(T0*)C;
r720basic_checks(C);
R=(T0*)C;
}
else {
_rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
_i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
while (!((_i)==(0))) {
_t1=r701item(((T701*)_rgl),_i);
_t2=X291to_runnable(_t1,a1);
/*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
r683add_type(_t1,((T0*)ms72_470));
r683print_as_error(((T683*)(oBC364eh)));
_i=0;
}
else {
/*[IRF3.6put*/{T701* C1=((T701*)_rgl);
T0* b1=_t2;
int b2=_i;
((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_t2=X291run_type(_t2);
/*IF*/if (X291is_expanded(_t2)) {
r355set_at_run_time(((T355*)(X291run_class(_t2))));
}
/*FI*/_i=(_i)-(1);
}
{T720*n=malloc(sizeof(*n));
*n=M720;
r720make_runnable(n,(T0*)C,_rgl);
_rt=(T0*)n;
}
/*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
C->_run_type_memory=_rt;
R=(T0*)C;
}
else {
R=r720twin(C);
/*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
/*]*/
}
/*FI*/}
/*FI*/}
 else if (r720is_written_runnable(C)) {
R=(T0*)C;
}
else {
_rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
_i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
while (!((_i)==(0))) {
_t1=r701item(((T701*)_rgl),_i);
_t2=X291to_runnable(_t1,a1);
/*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
r683add_type(_t1,((T0*)ms72_470));
r683print_as_error(((T683*)(oBC364eh)));
_i=0;
}
else {
/*[IRF3.6put*/{T701* C1=((T701*)_rgl);
T0* b1=_t2;
int b2=_i;
((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_t2=X291run_type(_t2);
/*IF*/if (X291is_expanded(_t2)) {
r355set_at_run_time(((T355*)(X291run_class(_t2))));
}
/*FI*/_i=(_i)-(1);
}
{T720*n=malloc(sizeof(*n));
*n=M720;
r720make_runnable(n,(T0*)C,_rgl);
_rt=(T0*)n;
}
R=r720twin(C);
/*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
/*]*/
}
/*FI*/return R;
}
int r720is_run_type(T720* C){
int R=0;
/*IF*/if (((((T720*)C))->_run_type_memory/*16*/)!=((void*)(NULL))) {
R=1;
}
 else if (r720is_written_runnable(C)) {
C->_run_type_memory=(T0*)C;
r720basic_checks(C);
R=1;
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.run_type_memory*/
/*No:TYPE_GENERIC.is_formal_generic*/
/*No:TYPE_GENERIC.generic_list*/
/*No:TYPE_GENERIC.is_real*/
int r720is_written_runnable(T720* C){
int R=0;
T0* _t=NULL;
int _i=0;
R=1;
_i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
while (!((!(R))||((_i)==(0)))) {
_t=r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i);
/*IF*/if (X291is_run_type(_t)) {
/*IF*/if ((X291run_type(_t))==((void*)(_t))) {
}
else {
R=0;
}
/*FI*/}
else {
R=0;
}
/*FI*/_i=(_i)-(1);
}
return R;
}
T0* r720twin(T720* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T720*)R)=*C;
return R;
}
/*No:TYPE_GENERIC.fz_bnga*/
void r720standard_jvm_check_class_invariant(T720* C){
/*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
r355jvm_check_class_invariant(((T355*)(r720run_class(C))));
}
/*FI*/}
/*No:TYPE_GENERIC.is_bit*/
/*No:TYPE_GENERIC.jvm_check_class_invariant*/
T0* r720jvm_root_descriptor(void){
if (fBC364jvm_root_descriptor==0){
T0* R=NULL;
fBC364jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
R=(T0*)n;
}
r7extend(((T7*)R),'L');
r7append(((T7*)R),r720jvm_root_class());
r7extend(((T7*)R),'\73');
oBC364jvm_root_descriptor=R;}
return oBC364jvm_root_descriptor;}
/*No:TYPE_GENERIC.jvm_xaload*/
T0* r720smallest_ancestor(T720* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_none(a1)) {
R=(T0*)C;
}
 else if (X291is_any(_rto)) {
R=_rto;
}
 else if (X291is_a(_rto,r720run_type(C))) {
R=(((T720*)C))->_run_type_memory/*16*/;
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (r720is_a(((T720*)(r720run_type(C))),_rto)) {
R=_rto;
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_generic(_rto)) {
R=r720type_any();
}
else {
R=X291smallest_ancestor(_rto,(T0*)C);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_GENERIC.is_boolean*/
T0*oBC720tmp_mark=NULL;
/*No:TYPE_GENERIC.is_double*/
int r720jvm_stack_space(void){
int R=0;
/*IF*//*AF*//*AE*/
R=1;
/*FI*/return R;
}
T0* r720run_class(T720* C){
T0* R=NULL;
/*IF*/if (r720is_run_type(C)) {
R=r604run_class((((T720*)C))->_run_type_memory/*16*/);
}
/*FI*/return R;
}
T0* r720run_time_mark(T720* C){
T0* R=NULL;
/*IF*/if (r720is_run_type(C)) {
R=(((T720*)((T720*)((((T720*)C))->_run_type_memory/*16*/))))->_written_mark/*12*/;
}
/*FI*/return R;
}
int r720is_a_in(T720* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T720*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r720to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r720look_up_for(T720* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r720base_class(C))),a1,a2);
return R;
}
/*No:TYPE_GENERIC.jvm_convert_to*/
T0* r720expanded_initializer(T720* C){
T0* R=NULL;
/*IF*/if (r720is_expanded(C)) {
R=r605expanded_initializer(((T605*)(r720base_class(C))),(T0*)C);
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.fz_jvm_root*/
/*No:TYPE_GENERIC.jvm_if_x_ne*/
/*No:TYPE_GENERIC.fz_dot*/
/*No:TYPE_GENERIC.is_generic*/
/*No:TYPE_GENERIC.fz_bga*/
void r720jvm_write_local(T720* C,int a1){
/*IF*/if (r720is_expanded(C)) {
r355jvm_expanded_write_local(((T355*)(r720run_class(C))),a1);
}
else {
r256opcode_astore(((T256*)(oBC364code_attribute)),a1);
}
/*FI*/}
void r720jvm_initialize_local(T720* C,int a1){
/*IF*/if (r720is_expanded(C)) {
r355jvm_expanded_push_default(((T355*)(r720run_class(C))));
}
else {
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
}
/*FI*/r720jvm_write_local(C,a1);
}
/*No:TYPE_GENERIC.used_as_reference*/
int r720is_reference(T720* C){
int R=0;
R=!((((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/);
return R;
}
T0* r720base_class(T720* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T720*)C))->_base_class_name/*4*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.jvm_xastore*/
/*No:TYPE_GENERIC.fatal_error*/
/*No:TYPE_GENERIC.is_any*/

