Thu, 24 May 2018 19:24:53 +0800
#7046 Disable the compilation when branch offset is beyond short branch
Contributed-by: fujie, aoqi
1.1 --- a/src/cpu/mips/vm/mips_64.ad Thu May 24 19:21:48 2018 +0800 1.2 +++ b/src/cpu/mips/vm/mips_64.ad Thu May 24 19:24:53 2018 +0800 1.3 @@ -652,12 +652,9 @@ 1.4 } 1.5 1.6 bool Matcher::is_short_branch_offset(int rule, int br_size, int offset) { 1.7 - if( Assembler::is_simm16(offset) ) 1.8 - return true; 1.9 - else { 1.10 - assert(false, "Not implemented yet !" ); 1.11 - Unimplemented(); 1.12 - } 1.13 + int offs = offset - br_size + 4; 1.14 + // To be conservative on MIPS 1.15 + return Assembler::is_simm16((offs + 4) >> 2) && Assembler::is_simm16((offs - 4) >> 2); 1.16 } 1.17 1.18 1.19 @@ -6689,12 +6686,202 @@ 1.20 ins_pipe( pipe_jump ); 1.21 %} 1.22 1.23 -instruct branchConP_zero(cmpOpU cmp, mRegP op1, immP0 zero, label labl) %{ 1.24 +// ============================================================================ 1.25 +// Branch Instructions --- long offset versions 1.26 + 1.27 +// Jump Direct 1.28 +instruct jmpDir_long(label labl) %{ 1.29 + match(Goto); 1.30 + effect(USE labl); 1.31 + 1.32 + ins_cost(300); 1.33 + format %{ "JMP $labl #@jmpDir_long" %} 1.34 + 1.35 + ins_encode %{ 1.36 + Label &L = *($labl$$label); 1.37 + if(&L) 1.38 + __ b(L); 1.39 + else 1.40 + __ b(int(0)); 1.41 + __ nop(); 1.42 + __ nop(); 1.43 + %} 1.44 + 1.45 + ins_pipe( pipe_jump ); 1.46 + ins_pc_relative(1); 1.47 +%} 1.48 + 1.49 +// Jump Direct Conditional - Label defines a relative address from Jcc+1 1.50 +instruct jmpLoopEnd_long(cmpOp cop, mRegI src1, mRegI src2, label labl) %{ 1.51 + match(CountedLoopEnd cop (CmpI src1 src2)); 1.52 + effect(USE labl); 1.53 + 1.54 + ins_cost(300); 1.55 + format %{ "J$cop $src1, $src2, $labl\t# Loop end @ jmpLoopEnd_long" %} 1.56 + ins_encode %{ 1.57 + Register op1 = $src1$$Register; 1.58 + Register op2 = $src2$$Register; 1.59 + Label &L = *($labl$$label); 1.60 + int flag = $cop$$cmpcode; 1.61 + 1.62 + switch(flag) { 1.63 + case 0x01: //equal 1.64 + if (&L) 1.65 + __ beq(op1, op2, L); 1.66 + else 1.67 + __ beq(op1, op2, (int)0); 1.68 + break; 1.69 + case 0x02: //not_equal 1.70 + if (&L) 1.71 + __ bne(op1, op2, L); 1.72 + else 1.73 + __ bne(op1, op2, (int)0); 1.74 + break; 1.75 + case 0x03: //above 1.76 + __ slt(AT, op2, op1); 1.77 + if(&L) 1.78 + __ bne(AT, R0, L); 1.79 + else 1.80 + __ bne(AT, R0, (int)0); 1.81 + break; 1.82 + case 0x04: //above_equal 1.83 + __ slt(AT, op1, op2); 1.84 + if(&L) 1.85 + __ beq(AT, R0, L); 1.86 + else 1.87 + __ beq(AT, R0, (int)0); 1.88 + break; 1.89 + case 0x05: //below 1.90 + __ slt(AT, op1, op2); 1.91 + if(&L) 1.92 + __ bne(AT, R0, L); 1.93 + else 1.94 + __ bne(AT, R0, (int)0); 1.95 + break; 1.96 + case 0x06: //below_equal 1.97 + __ slt(AT, op2, op1); 1.98 + if(&L) 1.99 + __ beq(AT, R0, L); 1.100 + else 1.101 + __ beq(AT, R0, (int)0); 1.102 + break; 1.103 + default: 1.104 + Unimplemented(); 1.105 + } 1.106 + __ nop(); 1.107 + __ nop(); 1.108 + %} 1.109 + ins_pipe( pipe_jump ); 1.110 + ins_pc_relative(1); 1.111 +%} 1.112 + 1.113 +instruct jmpLoopEnd_reg_immI_long(cmpOp cop, mRegI src1, immI src2, label labl) %{ 1.114 + match(CountedLoopEnd cop (CmpI src1 src2)); 1.115 + effect(USE labl); 1.116 + 1.117 + ins_cost(300); 1.118 + format %{ "J$cop $src1, $src2, $labl\t# Loop end @ jmpLoopEnd_reg_immI_long" %} 1.119 + ins_encode %{ 1.120 + Register op1 = $src1$$Register; 1.121 + Register op2 = AT; 1.122 + Label &L = *($labl$$label); 1.123 + int flag = $cop$$cmpcode; 1.124 + 1.125 + __ move(op2, $src2$$constant); 1.126 + 1.127 + switch(flag) { 1.128 + case 0x01: //equal 1.129 + if (&L) 1.130 + __ beq(op1, op2, L); 1.131 + else 1.132 + __ beq(op1, op2, (int)0); 1.133 + break; 1.134 + case 0x02: //not_equal 1.135 + if (&L) 1.136 + __ bne(op1, op2, L); 1.137 + else 1.138 + __ bne(op1, op2, (int)0); 1.139 + break; 1.140 + case 0x03: //above 1.141 + __ slt(AT, op2, op1); 1.142 + if(&L) 1.143 + __ bne(AT, R0, L); 1.144 + else 1.145 + __ bne(AT, R0, (int)0); 1.146 + break; 1.147 + case 0x04: //above_equal 1.148 + __ slt(AT, op1, op2); 1.149 + if(&L) 1.150 + __ beq(AT, R0, L); 1.151 + else 1.152 + __ beq(AT, R0, (int)0); 1.153 + break; 1.154 + case 0x05: //below 1.155 + __ slt(AT, op1, op2); 1.156 + if(&L) 1.157 + __ bne(AT, R0, L); 1.158 + else 1.159 + __ bne(AT, R0, (int)0); 1.160 + break; 1.161 + case 0x06: //below_equal 1.162 + __ slt(AT, op2, op1); 1.163 + if(&L) 1.164 + __ beq(AT, R0, L); 1.165 + else 1.166 + __ beq(AT, R0, (int)0); 1.167 + break; 1.168 + default: 1.169 + Unimplemented(); 1.170 + } 1.171 + __ nop(); 1.172 + __ nop(); 1.173 + %} 1.174 + ins_pipe( pipe_jump ); 1.175 + ins_pc_relative(1); 1.176 +%} 1.177 + 1.178 + 1.179 +// This match pattern is created for StoreIConditional since I cannot match IfNode without a RegFlags! fujie 2012/07/17 1.180 +instruct jmpCon_flags_long(cmpOp cop, FlagsReg cr, label labl) %{ 1.181 + match(If cop cr); 1.182 + effect(USE labl); 1.183 + 1.184 + ins_cost(300); 1.185 + format %{ "J$cop $labl #mips uses AT as eflag @jmpCon_flags_long" %} 1.186 + 1.187 + ins_encode %{ 1.188 + Label &L = *($labl$$label); 1.189 + switch($cop$$cmpcode) { 1.190 + case 0x01: //equal 1.191 + if (&L) 1.192 + __ bne(AT, R0, L); 1.193 + else 1.194 + __ bne(AT, R0, (int)0); 1.195 + break; 1.196 + case 0x02: //not equal 1.197 + if (&L) 1.198 + __ beq(AT, R0, L); 1.199 + else 1.200 + __ beq(AT, R0, (int)0); 1.201 + break; 1.202 + default: 1.203 + Unimplemented(); 1.204 + } 1.205 + __ nop(); 1.206 + __ nop(); 1.207 + %} 1.208 + 1.209 + ins_pipe( pipe_jump ); 1.210 + ins_pc_relative(1); 1.211 +%} 1.212 + 1.213 +// Conditional jumps 1.214 +instruct branchConP_zero_long(cmpOpU cmp, mRegP op1, immP0 zero, label labl) %{ 1.215 match(If cmp (CmpP op1 zero)); 1.216 effect(USE labl); 1.217 1.218 ins_cost(180); 1.219 - format %{ "b$cmp $op1, R0, $labl #@branchConP_zero" %} 1.220 + format %{ "b$cmp $op1, R0, $labl #@branchConP_zero_long" %} 1.221 1.222 ins_encode %{ 1.223 Register op1 = $op1$$Register; 1.224 @@ -6719,19 +6906,20 @@ 1.225 Unimplemented(); 1.226 } 1.227 __ nop(); 1.228 + __ nop(); 1.229 %} 1.230 1.231 ins_pc_relative(1); 1.232 ins_pipe( pipe_alu_branch ); 1.233 %} 1.234 1.235 -instruct branchConN2P_zero(cmpOpU cmp, mRegN op1, immP0 zero, label labl) %{ 1.236 +instruct branchConN2P_zero_long(cmpOpU cmp, mRegN op1, immP0 zero, label labl) %{ 1.237 match(If cmp (CmpP (DecodeN op1) zero)); 1.238 predicate(Universe::narrow_oop_base() == NULL && Universe::narrow_oop_shift() == 0); 1.239 effect(USE labl); 1.240 1.241 ins_cost(180); 1.242 - format %{ "b$cmp $op1, R0, $labl #@branchConN2P_zero" %} 1.243 + format %{ "b$cmp $op1, R0, $labl #@branchConN2P_zero_long" %} 1.244 1.245 ins_encode %{ 1.246 Register op1 = $op1$$Register; 1.247 @@ -6757,6 +6945,7 @@ 1.248 Unimplemented(); 1.249 } 1.250 __ nop(); 1.251 + __ nop(); 1.252 %} 1.253 1.254 ins_pc_relative(1); 1.255 @@ -6764,13 +6953,13 @@ 1.256 %} 1.257 1.258 1.259 -instruct branchConP(cmpOpU cmp, mRegP op1, mRegP op2, label labl) %{ 1.260 +instruct branchConP_long(cmpOpU cmp, mRegP op1, mRegP op2, label labl) %{ 1.261 match(If cmp (CmpP op1 op2)); 1.262 // predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf)); 1.263 effect(USE labl); 1.264 1.265 ins_cost(200); 1.266 - format %{ "b$cmp $op1, $op2, $labl #@branchConP" %} 1.267 + format %{ "b$cmp $op1, $op2, $labl #@branchConP_long" %} 1.268 1.269 ins_encode %{ 1.270 Register op1 = $op1$$Register; 1.271 @@ -6823,19 +7012,20 @@ 1.272 Unimplemented(); 1.273 } 1.274 __ nop(); 1.275 + __ nop(); 1.276 %} 1.277 1.278 ins_pc_relative(1); 1.279 ins_pipe( pipe_alu_branch ); 1.280 %} 1.281 1.282 -instruct cmpN_null_branch(cmpOp cmp, mRegN op1, immN0 null, label labl) %{ 1.283 +instruct cmpN_null_branch_long(cmpOp cmp, mRegN op1, immN0 null, label labl) %{ 1.284 match(If cmp (CmpN op1 null)); 1.285 effect(USE labl); 1.286 1.287 ins_cost(180); 1.288 format %{ "CMP $op1,0\t! compressed ptr\n\t" 1.289 - "BP$cmp $labl @ cmpN_null_branch" %} 1.290 + "BP$cmp $labl @ cmpN_null_branch_long" %} 1.291 ins_encode %{ 1.292 Register op1 = $op1$$Register; 1.293 Register op2 = R0; 1.294 @@ -6859,19 +7049,20 @@ 1.295 Unimplemented(); 1.296 } 1.297 __ nop(); 1.298 + __ nop(); 1.299 %} 1.300 //TODO: pipe_branchP or create pipe_branchN LEE 1.301 ins_pc_relative(1); 1.302 ins_pipe( pipe_alu_branch ); 1.303 %} 1.304 1.305 -instruct cmpN_reg_branch(cmpOp cmp, mRegN op1, mRegN op2, label labl) %{ 1.306 +instruct cmpN_reg_branch_long(cmpOp cmp, mRegN op1, mRegN op2, label labl) %{ 1.307 match(If cmp (CmpN op1 op2)); 1.308 effect(USE labl); 1.309 1.310 ins_cost(180); 1.311 format %{ "CMP $op1,$op2\t! compressed ptr\n\t" 1.312 - "BP$cmp $labl" %} 1.313 + "BP$cmp $labl @ cmpN_reg_branch_long" %} 1.314 ins_encode %{ 1.315 Register op1_reg = $op1$$Register; 1.316 Register op2_reg = $op2$$Register; 1.317 @@ -6923,15 +7114,16 @@ 1.318 Unimplemented(); 1.319 } 1.320 __ nop(); 1.321 + __ nop(); 1.322 %} 1.323 ins_pc_relative(1); 1.324 ins_pipe( pipe_alu_branch ); 1.325 %} 1.326 1.327 -instruct branchConIU_reg_reg(cmpOpU cmp, mRegI src1, mRegI src2, label labl) %{ 1.328 +instruct branchConIU_reg_reg_long(cmpOpU cmp, mRegI src1, mRegI src2, label labl) %{ 1.329 match( If cmp (CmpU src1 src2) ); 1.330 effect(USE labl); 1.331 - format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_reg" %} 1.332 + format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_reg_long" %} 1.333 1.334 ins_encode %{ 1.335 Register op1 = $src1$$Register; 1.336 @@ -6984,6 +7176,7 @@ 1.337 Unimplemented(); 1.338 } 1.339 __ nop(); 1.340 + __ nop(); 1.341 %} 1.342 1.343 ins_pc_relative(1); 1.344 @@ -6991,10 +7184,10 @@ 1.345 %} 1.346 1.347 1.348 -instruct branchConIU_reg_imm(cmpOpU cmp, mRegI src1, immI src2, label labl) %{ 1.349 +instruct branchConIU_reg_imm_long(cmpOpU cmp, mRegI src1, immI src2, label labl) %{ 1.350 match( If cmp (CmpU src1 src2) ); 1.351 effect(USE labl); 1.352 - format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_imm" %} 1.353 + format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_imm_long" %} 1.354 1.355 ins_encode %{ 1.356 Register op1 = $src1$$Register; 1.357 @@ -7048,16 +7241,17 @@ 1.358 Unimplemented(); 1.359 } 1.360 __ nop(); 1.361 + __ nop(); 1.362 %} 1.363 1.364 ins_pc_relative(1); 1.365 ins_pipe( pipe_alu_branch ); 1.366 %} 1.367 1.368 -instruct branchConI_reg_reg(cmpOp cmp, mRegI src1, mRegI src2, label labl) %{ 1.369 +instruct branchConI_reg_reg_long(cmpOp cmp, mRegI src1, mRegI src2, label labl) %{ 1.370 match( If cmp (CmpI src1 src2) ); 1.371 effect(USE labl); 1.372 - format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_reg" %} 1.373 + format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_reg_long" %} 1.374 1.375 ins_encode %{ 1.376 Register op1 = $src1$$Register; 1.377 @@ -7110,17 +7304,18 @@ 1.378 Unimplemented(); 1.379 } 1.380 __ nop(); 1.381 + __ nop(); 1.382 %} 1.383 1.384 ins_pc_relative(1); 1.385 ins_pipe( pipe_alu_branch ); 1.386 %} 1.387 1.388 -instruct branchConI_reg_imm0(cmpOp cmp, mRegI src1, immI0 src2, label labl) %{ 1.389 +instruct branchConI_reg_imm0_long(cmpOp cmp, mRegI src1, immI0 src2, label labl) %{ 1.390 match( If cmp (CmpI src1 src2) ); 1.391 effect(USE labl); 1.392 ins_cost(170); 1.393 - format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_imm0" %} 1.394 + format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_imm0_long" %} 1.395 1.396 ins_encode %{ 1.397 Register op1 = $src1$$Register; 1.398 @@ -7168,6 +7363,7 @@ 1.399 Unimplemented(); 1.400 } 1.401 __ nop(); 1.402 + __ nop(); 1.403 %} 1.404 1.405 ins_pc_relative(1); 1.406 @@ -7175,11 +7371,11 @@ 1.407 %} 1.408 1.409 1.410 -instruct branchConI_reg_imm(cmpOp cmp, mRegI src1, immI src2, label labl) %{ 1.411 +instruct branchConI_reg_imm_long(cmpOp cmp, mRegI src1, immI src2, label labl) %{ 1.412 match( If cmp (CmpI src1 src2) ); 1.413 effect(USE labl); 1.414 ins_cost(200); 1.415 - format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_imm" %} 1.416 + format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_imm_long" %} 1.417 1.418 ins_encode %{ 1.419 Register op1 = $src1$$Register; 1.420 @@ -7233,16 +7429,17 @@ 1.421 Unimplemented(); 1.422 } 1.423 __ nop(); 1.424 + __ nop(); 1.425 %} 1.426 1.427 ins_pc_relative(1); 1.428 ins_pipe( pipe_alu_branch ); 1.429 %} 1.430 1.431 -instruct branchConIU_reg_imm0(cmpOpU cmp, mRegI src1, immI0 zero, label labl) %{ 1.432 +instruct branchConIU_reg_imm0_long(cmpOpU cmp, mRegI src1, immI0 zero, label labl) %{ 1.433 match( If cmp (CmpU src1 zero) ); 1.434 effect(USE labl); 1.435 - format %{ "BR$cmp $src1, zero, $labl #@branchConIU_reg_imm0" %} 1.436 + format %{ "BR$cmp $src1, zero, $labl #@branchConIU_reg_imm0_long" %} 1.437 1.438 ins_encode %{ 1.439 Register op1 = $src1$$Register; 1.440 @@ -7287,6 +7484,7 @@ 1.441 Unimplemented(); 1.442 } 1.443 __ nop(); 1.444 + __ nop(); 1.445 %} 1.446 1.447 ins_pc_relative(1); 1.448 @@ -7294,11 +7492,11 @@ 1.449 %} 1.450 1.451 1.452 -instruct branchConIU_reg_immI16(cmpOpU cmp, mRegI src1, immI16 src2, label labl) %{ 1.453 +instruct branchConIU_reg_immI16_long(cmpOpU cmp, mRegI src1, immI16 src2, label labl) %{ 1.454 match( If cmp (CmpU src1 src2) ); 1.455 effect(USE labl); 1.456 ins_cost(180); 1.457 - format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_immI16" %} 1.458 + format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_immI16_long" %} 1.459 1.460 ins_encode %{ 1.461 Register op1 = $src1$$Register; 1.462 @@ -7355,6 +7553,7 @@ 1.463 Unimplemented(); 1.464 } 1.465 __ nop(); 1.466 + __ nop(); 1.467 %} 1.468 1.469 ins_pc_relative(1); 1.470 @@ -7362,10 +7561,10 @@ 1.471 %} 1.472 1.473 1.474 -instruct branchConL_regL_regL(cmpOp cmp, mRegL src1, mRegL src2, label labl) %{ 1.475 +instruct branchConL_regL_regL_long(cmpOp cmp, mRegL src1, mRegL src2, label labl) %{ 1.476 match( If cmp (CmpL src1 src2) ); 1.477 effect(USE labl); 1.478 - format %{ "BR$cmp $src1, $src2, $labl #@branchConL_regL_regL" %} 1.479 + format %{ "BR$cmp $src1, $src2, $labl #@branchConL_regL_regL_long" %} 1.480 ins_cost(250); 1.481 1.482 ins_encode %{ 1.483 @@ -7435,6 +7634,7 @@ 1.484 default: 1.485 Unimplemented(); 1.486 } 1.487 + __ nop(); 1.488 %} 1.489 1.490 1.491 @@ -7443,10 +7643,10 @@ 1.492 %} 1.493 1.494 1.495 -instruct branchConL_regL_immL0(cmpOp cmp, mRegL src1, immL0 zero, label labl) %{ 1.496 +instruct branchConL_regL_immL0_long(cmpOp cmp, mRegL src1, immL0 zero, label labl) %{ 1.497 match( If cmp (CmpL src1 zero) ); 1.498 effect(USE labl); 1.499 - format %{ "BR$cmp $src1, zero, $labl #@branchConL_regL_immL0" %} 1.500 + format %{ "BR$cmp $src1, zero, $labl #@branchConL_regL_immL0_long" %} 1.501 ins_cost(150); 1.502 1.503 ins_encode %{ 1.504 @@ -7502,6 +7702,7 @@ 1.505 Unimplemented(); 1.506 } 1.507 __ delayed()->nop(); 1.508 + __ nop(); 1.509 %} 1.510 1.511 1.512 @@ -7509,10 +7710,10 @@ 1.513 ins_pipe( pipe_alu_branch ); 1.514 %} 1.515 1.516 -instruct branchConL_regL_immL(cmpOp cmp, mRegL src1, immL src2, label labl) %{ 1.517 +instruct branchConL_regL_immL_long(cmpOp cmp, mRegL src1, immL src2, label labl) %{ 1.518 match( If cmp (CmpL src1 src2) ); 1.519 effect(USE labl); 1.520 - format %{ "BR$cmp $src1, $src2, $labl #@branchConL_regL_immL" %} 1.521 + format %{ "BR$cmp $src1, $src2, $labl #@branchConL_regL_immL_long" %} 1.522 ins_cost(180); 1.523 1.524 ins_encode %{ 1.525 @@ -7575,6 +7776,7 @@ 1.526 Unimplemented(); 1.527 } 1.528 __ nop(); 1.529 + __ nop(); 1.530 %} 1.531 1.532 1.533 @@ -7584,10 +7786,10 @@ 1.534 1.535 1.536 //FIXME 1.537 -instruct branchConF_reg_reg(cmpOp cmp, regF src1, regF src2, label labl) %{ 1.538 +instruct branchConF_reg_reg_long(cmpOp cmp, regF src1, regF src2, label labl) %{ 1.539 match( If cmp (CmpF src1 src2) ); 1.540 effect(USE labl); 1.541 - format %{ "BR$cmp $src1, $src2, $labl #@branchConF_reg_reg" %} 1.542 + format %{ "BR$cmp $src1, $src2, $labl #@branchConF_reg_reg_long" %} 1.543 1.544 ins_encode %{ 1.545 FloatRegister reg_op1 = $src1$$FloatRegister; 1.546 @@ -7642,16 +7844,17 @@ 1.547 Unimplemented(); 1.548 } 1.549 __ nop(); 1.550 + __ nop(); 1.551 %} 1.552 1.553 ins_pc_relative(1); 1.554 ins_pipe(pipe_slow); 1.555 %} 1.556 1.557 -instruct branchConD_reg_reg(cmpOp cmp, regD src1, regD src2, label labl) %{ 1.558 +instruct branchConD_reg_reg_long(cmpOp cmp, regD src1, regD src2, label labl) %{ 1.559 match( If cmp (CmpD src1 src2) ); 1.560 effect(USE labl); 1.561 - format %{ "BR$cmp $src1, $src2, $labl #@branchConD_reg_reg" %} 1.562 + format %{ "BR$cmp $src1, $src2, $labl #@branchConD_reg_reg_long" %} 1.563 1.564 ins_encode %{ 1.565 FloatRegister reg_op1 = $src1$$FloatRegister; 1.566 @@ -7707,6 +7910,7 @@ 1.567 Unimplemented(); 1.568 } 1.569 __ nop(); 1.570 + __ nop(); 1.571 %} 1.572 1.573 ins_pc_relative(1); 1.574 @@ -7714,6 +7918,1239 @@ 1.575 %} 1.576 1.577 1.578 +// ============================================================================ 1.579 +// Branch Instructions -- short offset versions 1.580 + 1.581 +// Jump Direct 1.582 +instruct jmpDir_short(label labl) %{ 1.583 + match(Goto); 1.584 + effect(USE labl); 1.585 + 1.586 + ins_cost(300); 1.587 + format %{ "JMP $labl #@jmpDir_short" %} 1.588 + 1.589 + ins_encode %{ 1.590 + Label &L = *($labl$$label); 1.591 + if(&L) 1.592 + __ b(L); 1.593 + else 1.594 + __ b(int(0)); 1.595 + __ nop(); 1.596 + %} 1.597 + 1.598 + ins_pipe( pipe_jump ); 1.599 + ins_pc_relative(1); 1.600 + ins_short_branch(1); 1.601 +%} 1.602 + 1.603 +// Jump Direct Conditional - Label defines a relative address from Jcc+1 1.604 +instruct jmpLoopEnd_short(cmpOp cop, mRegI src1, mRegI src2, label labl) %{ 1.605 + match(CountedLoopEnd cop (CmpI src1 src2)); 1.606 + effect(USE labl); 1.607 + 1.608 + ins_cost(300); 1.609 + format %{ "J$cop $src1, $src2, $labl\t# Loop end @ jmpLoopEnd_short" %} 1.610 + ins_encode %{ 1.611 + Register op1 = $src1$$Register; 1.612 + Register op2 = $src2$$Register; 1.613 + Label &L = *($labl$$label); 1.614 + int flag = $cop$$cmpcode; 1.615 + 1.616 + switch(flag) { 1.617 + case 0x01: //equal 1.618 + if (&L) 1.619 + __ beq(op1, op2, L); 1.620 + else 1.621 + __ beq(op1, op2, (int)0); 1.622 + break; 1.623 + case 0x02: //not_equal 1.624 + if (&L) 1.625 + __ bne(op1, op2, L); 1.626 + else 1.627 + __ bne(op1, op2, (int)0); 1.628 + break; 1.629 + case 0x03: //above 1.630 + __ slt(AT, op2, op1); 1.631 + if(&L) 1.632 + __ bne(AT, R0, L); 1.633 + else 1.634 + __ bne(AT, R0, (int)0); 1.635 + break; 1.636 + case 0x04: //above_equal 1.637 + __ slt(AT, op1, op2); 1.638 + if(&L) 1.639 + __ beq(AT, R0, L); 1.640 + else 1.641 + __ beq(AT, R0, (int)0); 1.642 + break; 1.643 + case 0x05: //below 1.644 + __ slt(AT, op1, op2); 1.645 + if(&L) 1.646 + __ bne(AT, R0, L); 1.647 + else 1.648 + __ bne(AT, R0, (int)0); 1.649 + break; 1.650 + case 0x06: //below_equal 1.651 + __ slt(AT, op2, op1); 1.652 + if(&L) 1.653 + __ beq(AT, R0, L); 1.654 + else 1.655 + __ beq(AT, R0, (int)0); 1.656 + break; 1.657 + default: 1.658 + Unimplemented(); 1.659 + } 1.660 + __ nop(); 1.661 + %} 1.662 + ins_pipe( pipe_jump ); 1.663 + ins_pc_relative(1); 1.664 + ins_short_branch(1); 1.665 +%} 1.666 + 1.667 +instruct jmpLoopEnd_reg_immI_short(cmpOp cop, mRegI src1, immI src2, label labl) %{ 1.668 + match(CountedLoopEnd cop (CmpI src1 src2)); 1.669 + effect(USE labl); 1.670 + 1.671 + ins_cost(300); 1.672 + format %{ "J$cop $src1, $src2, $labl\t# Loop end @ jmpLoopEnd_reg_immI_short" %} 1.673 + ins_encode %{ 1.674 + Register op1 = $src1$$Register; 1.675 + Register op2 = AT; 1.676 + Label &L = *($labl$$label); 1.677 + int flag = $cop$$cmpcode; 1.678 + 1.679 + __ move(op2, $src2$$constant); 1.680 + 1.681 + switch(flag) { 1.682 + case 0x01: //equal 1.683 + if (&L) 1.684 + __ beq(op1, op2, L); 1.685 + else 1.686 + __ beq(op1, op2, (int)0); 1.687 + break; 1.688 + case 0x02: //not_equal 1.689 + if (&L) 1.690 + __ bne(op1, op2, L); 1.691 + else 1.692 + __ bne(op1, op2, (int)0); 1.693 + break; 1.694 + case 0x03: //above 1.695 + __ slt(AT, op2, op1); 1.696 + if(&L) 1.697 + __ bne(AT, R0, L); 1.698 + else 1.699 + __ bne(AT, R0, (int)0); 1.700 + break; 1.701 + case 0x04: //above_equal 1.702 + __ slt(AT, op1, op2); 1.703 + if(&L) 1.704 + __ beq(AT, R0, L); 1.705 + else 1.706 + __ beq(AT, R0, (int)0); 1.707 + break; 1.708 + case 0x05: //below 1.709 + __ slt(AT, op1, op2); 1.710 + if(&L) 1.711 + __ bne(AT, R0, L); 1.712 + else 1.713 + __ bne(AT, R0, (int)0); 1.714 + break; 1.715 + case 0x06: //below_equal 1.716 + __ slt(AT, op2, op1); 1.717 + if(&L) 1.718 + __ beq(AT, R0, L); 1.719 + else 1.720 + __ beq(AT, R0, (int)0); 1.721 + break; 1.722 + default: 1.723 + Unimplemented(); 1.724 + } 1.725 + __ nop(); 1.726 + %} 1.727 + ins_pipe( pipe_jump ); 1.728 + ins_pc_relative(1); 1.729 + ins_short_branch(1); 1.730 +%} 1.731 + 1.732 + 1.733 +// This match pattern is created for StoreIConditional since I cannot match IfNode without a RegFlags! fujie 2012/07/17 1.734 +instruct jmpCon_flags_short(cmpOp cop, FlagsReg cr, label labl) %{ 1.735 + match(If cop cr); 1.736 + effect(USE labl); 1.737 + 1.738 + ins_cost(300); 1.739 + format %{ "J$cop $labl #mips uses AT as eflag @jmpCon_flags_short" %} 1.740 + 1.741 + ins_encode %{ 1.742 + Label &L = *($labl$$label); 1.743 + switch($cop$$cmpcode) { 1.744 + case 0x01: //equal 1.745 + if (&L) 1.746 + __ bne(AT, R0, L); 1.747 + else 1.748 + __ bne(AT, R0, (int)0); 1.749 + break; 1.750 + case 0x02: //not equal 1.751 + if (&L) 1.752 + __ beq(AT, R0, L); 1.753 + else 1.754 + __ beq(AT, R0, (int)0); 1.755 + break; 1.756 + default: 1.757 + Unimplemented(); 1.758 + } 1.759 + __ nop(); 1.760 + %} 1.761 + 1.762 + ins_pipe( pipe_jump ); 1.763 + ins_pc_relative(1); 1.764 + ins_short_branch(1); 1.765 +%} 1.766 + 1.767 +// Conditional jumps 1.768 +instruct branchConP_zero_short(cmpOpU cmp, mRegP op1, immP0 zero, label labl) %{ 1.769 + match(If cmp (CmpP op1 zero)); 1.770 + effect(USE labl); 1.771 + 1.772 + ins_cost(180); 1.773 + format %{ "b$cmp $op1, R0, $labl #@branchConP_zero_short" %} 1.774 + 1.775 + ins_encode %{ 1.776 + Register op1 = $op1$$Register; 1.777 + Register op2 = R0; 1.778 + Label &L = *($labl$$label); 1.779 + int flag = $cmp$$cmpcode; 1.780 + 1.781 + switch(flag) { 1.782 + case 0x01: //equal 1.783 + if (&L) 1.784 + __ beq(op1, op2, L); 1.785 + else 1.786 + __ beq(op1, op2, (int)0); 1.787 + break; 1.788 + case 0x02: //not_equal 1.789 + if (&L) 1.790 + __ bne(op1, op2, L); 1.791 + else 1.792 + __ bne(op1, op2, (int)0); 1.793 + break; 1.794 + default: 1.795 + Unimplemented(); 1.796 + } 1.797 + __ nop(); 1.798 + %} 1.799 + 1.800 + ins_pc_relative(1); 1.801 + ins_pipe( pipe_alu_branch ); 1.802 + ins_short_branch(1); 1.803 +%} 1.804 + 1.805 +instruct branchConN2P_zero_short(cmpOpU cmp, mRegN op1, immP0 zero, label labl) %{ 1.806 + match(If cmp (CmpP (DecodeN op1) zero)); 1.807 + predicate(Universe::narrow_oop_base() == NULL && Universe::narrow_oop_shift() == 0); 1.808 + effect(USE labl); 1.809 + 1.810 + ins_cost(180); 1.811 + format %{ "b$cmp $op1, R0, $labl #@branchConN2P_zero_short" %} 1.812 + 1.813 + ins_encode %{ 1.814 + Register op1 = $op1$$Register; 1.815 + Register op2 = R0; 1.816 + Label &L = *($labl$$label); 1.817 + int flag = $cmp$$cmpcode; 1.818 + 1.819 + switch(flag) 1.820 + { 1.821 + case 0x01: //equal 1.822 + if (&L) 1.823 + __ beq(op1, op2, L); 1.824 + else 1.825 + __ beq(op1, op2, (int)0); 1.826 + break; 1.827 + case 0x02: //not_equal 1.828 + if (&L) 1.829 + __ bne(op1, op2, L); 1.830 + else 1.831 + __ bne(op1, op2, (int)0); 1.832 + break; 1.833 + default: 1.834 + Unimplemented(); 1.835 + } 1.836 + __ nop(); 1.837 + %} 1.838 + 1.839 + ins_pc_relative(1); 1.840 + ins_pipe( pipe_alu_branch ); 1.841 + ins_short_branch(1); 1.842 +%} 1.843 + 1.844 + 1.845 +instruct branchConP_short(cmpOpU cmp, mRegP op1, mRegP op2, label labl) %{ 1.846 + match(If cmp (CmpP op1 op2)); 1.847 +// predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf)); 1.848 + effect(USE labl); 1.849 + 1.850 + ins_cost(200); 1.851 + format %{ "b$cmp $op1, $op2, $labl #@branchConP_short" %} 1.852 + 1.853 + ins_encode %{ 1.854 + Register op1 = $op1$$Register; 1.855 + Register op2 = $op2$$Register; 1.856 + Label &L = *($labl$$label); 1.857 + int flag = $cmp$$cmpcode; 1.858 + 1.859 + switch(flag) { 1.860 + case 0x01: //equal 1.861 + if (&L) 1.862 + __ beq(op1, op2, L); 1.863 + else 1.864 + __ beq(op1, op2, (int)0); 1.865 + break; 1.866 + case 0x02: //not_equal 1.867 + if (&L) 1.868 + __ bne(op1, op2, L); 1.869 + else 1.870 + __ bne(op1, op2, (int)0); 1.871 + break; 1.872 + case 0x03: //above 1.873 + __ sltu(AT, op2, op1); 1.874 + if(&L) 1.875 + __ bne(R0, AT, L); 1.876 + else 1.877 + __ bne(R0, AT, (int)0); 1.878 + break; 1.879 + case 0x04: //above_equal 1.880 + __ sltu(AT, op1, op2); 1.881 + if(&L) 1.882 + __ beq(AT, R0, L); 1.883 + else 1.884 + __ beq(AT, R0, (int)0); 1.885 + break; 1.886 + case 0x05: //below 1.887 + __ sltu(AT, op1, op2); 1.888 + if(&L) 1.889 + __ bne(R0, AT, L); 1.890 + else 1.891 + __ bne(R0, AT, (int)0); 1.892 + break; 1.893 + case 0x06: //below_equal 1.894 + __ sltu(AT, op2, op1); 1.895 + if(&L) 1.896 + __ beq(AT, R0, L); 1.897 + else 1.898 + __ beq(AT, R0, (int)0); 1.899 + break; 1.900 + default: 1.901 + Unimplemented(); 1.902 + } 1.903 + __ nop(); 1.904 + %} 1.905 + 1.906 + ins_pc_relative(1); 1.907 + ins_pipe( pipe_alu_branch ); 1.908 + ins_short_branch(1); 1.909 +%} 1.910 + 1.911 +instruct cmpN_null_branch_short(cmpOp cmp, mRegN op1, immN0 null, label labl) %{ 1.912 + match(If cmp (CmpN op1 null)); 1.913 + effect(USE labl); 1.914 + 1.915 + ins_cost(180); 1.916 + format %{ "CMP $op1,0\t! compressed ptr\n\t" 1.917 + "BP$cmp $labl @ cmpN_null_branch_short" %} 1.918 + ins_encode %{ 1.919 + Register op1 = $op1$$Register; 1.920 + Register op2 = R0; 1.921 + Label &L = *($labl$$label); 1.922 + int flag = $cmp$$cmpcode; 1.923 + 1.924 + switch(flag) { 1.925 + case 0x01: //equal 1.926 + if (&L) 1.927 + __ beq(op1, op2, L); 1.928 + else 1.929 + __ beq(op1, op2, (int)0); 1.930 + break; 1.931 + case 0x02: //not_equal 1.932 + if (&L) 1.933 + __ bne(op1, op2, L); 1.934 + else 1.935 + __ bne(op1, op2, (int)0); 1.936 + break; 1.937 + default: 1.938 + Unimplemented(); 1.939 + } 1.940 + __ nop(); 1.941 + %} 1.942 +//TODO: pipe_branchP or create pipe_branchN LEE 1.943 + ins_pc_relative(1); 1.944 + ins_pipe( pipe_alu_branch ); 1.945 + ins_short_branch(1); 1.946 +%} 1.947 + 1.948 +instruct cmpN_reg_branch_short(cmpOp cmp, mRegN op1, mRegN op2, label labl) %{ 1.949 + match(If cmp (CmpN op1 op2)); 1.950 + effect(USE labl); 1.951 + 1.952 + ins_cost(180); 1.953 + format %{ "CMP $op1,$op2\t! compressed ptr\n\t" 1.954 + "BP$cmp $labl @ cmpN_reg_branch_short" %} 1.955 + ins_encode %{ 1.956 + Register op1_reg = $op1$$Register; 1.957 + Register op2_reg = $op2$$Register; 1.958 + Label &L = *($labl$$label); 1.959 + int flag = $cmp$$cmpcode; 1.960 + 1.961 + switch(flag) { 1.962 + case 0x01: //equal 1.963 + if (&L) 1.964 + __ beq(op1_reg, op2_reg, L); 1.965 + else 1.966 + __ beq(op1_reg, op2_reg, (int)0); 1.967 + break; 1.968 + case 0x02: //not_equal 1.969 + if (&L) 1.970 + __ bne(op1_reg, op2_reg, L); 1.971 + else 1.972 + __ bne(op1_reg, op2_reg, (int)0); 1.973 + break; 1.974 + case 0x03: //above 1.975 + __ sltu(AT, op2_reg, op1_reg); 1.976 + if(&L) 1.977 + __ bne(R0, AT, L); 1.978 + else 1.979 + __ bne(R0, AT, (int)0); 1.980 + break; 1.981 + case 0x04: //above_equal 1.982 + __ sltu(AT, op1_reg, op2_reg); 1.983 + if(&L) 1.984 + __ beq(AT, R0, L); 1.985 + else 1.986 + __ beq(AT, R0, (int)0); 1.987 + break; 1.988 + case 0x05: //below 1.989 + __ sltu(AT, op1_reg, op2_reg); 1.990 + if(&L) 1.991 + __ bne(R0, AT, L); 1.992 + else 1.993 + __ bne(R0, AT, (int)0); 1.994 + break; 1.995 + case 0x06: //below_equal 1.996 + __ sltu(AT, op2_reg, op1_reg); 1.997 + if(&L) 1.998 + __ beq(AT, R0, L); 1.999 + else 1.1000 + __ beq(AT, R0, (int)0); 1.1001 + break; 1.1002 + default: 1.1003 + Unimplemented(); 1.1004 + } 1.1005 + __ nop(); 1.1006 + %} 1.1007 + ins_pc_relative(1); 1.1008 + ins_pipe( pipe_alu_branch ); 1.1009 + ins_short_branch(1); 1.1010 +%} 1.1011 + 1.1012 +instruct branchConIU_reg_reg_short(cmpOpU cmp, mRegI src1, mRegI src2, label labl) %{ 1.1013 + match( If cmp (CmpU src1 src2) ); 1.1014 + effect(USE labl); 1.1015 + format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_reg_short" %} 1.1016 + 1.1017 + ins_encode %{ 1.1018 + Register op1 = $src1$$Register; 1.1019 + Register op2 = $src2$$Register; 1.1020 + Label &L = *($labl$$label); 1.1021 + int flag = $cmp$$cmpcode; 1.1022 + 1.1023 + switch(flag) { 1.1024 + case 0x01: //equal 1.1025 + if (&L) 1.1026 + __ beq(op1, op2, L); 1.1027 + else 1.1028 + __ beq(op1, op2, (int)0); 1.1029 + break; 1.1030 + case 0x02: //not_equal 1.1031 + if (&L) 1.1032 + __ bne(op1, op2, L); 1.1033 + else 1.1034 + __ bne(op1, op2, (int)0); 1.1035 + break; 1.1036 + case 0x03: //above 1.1037 + __ sltu(AT, op2, op1); 1.1038 + if(&L) 1.1039 + __ bne(AT, R0, L); 1.1040 + else 1.1041 + __ bne(AT, R0, (int)0); 1.1042 + break; 1.1043 + case 0x04: //above_equal 1.1044 + __ sltu(AT, op1, op2); 1.1045 + if(&L) 1.1046 + __ beq(AT, R0, L); 1.1047 + else 1.1048 + __ beq(AT, R0, (int)0); 1.1049 + break; 1.1050 + case 0x05: //below 1.1051 + __ sltu(AT, op1, op2); 1.1052 + if(&L) 1.1053 + __ bne(AT, R0, L); 1.1054 + else 1.1055 + __ bne(AT, R0, (int)0); 1.1056 + break; 1.1057 + case 0x06: //below_equal 1.1058 + __ sltu(AT, op2, op1); 1.1059 + if(&L) 1.1060 + __ beq(AT, R0, L); 1.1061 + else 1.1062 + __ beq(AT, R0, (int)0); 1.1063 + break; 1.1064 + default: 1.1065 + Unimplemented(); 1.1066 + } 1.1067 + __ nop(); 1.1068 + %} 1.1069 + 1.1070 + ins_pc_relative(1); 1.1071 + ins_pipe( pipe_alu_branch ); 1.1072 + ins_short_branch(1); 1.1073 +%} 1.1074 + 1.1075 + 1.1076 +instruct branchConIU_reg_imm_short(cmpOpU cmp, mRegI src1, immI src2, label labl) %{ 1.1077 + match( If cmp (CmpU src1 src2) ); 1.1078 + effect(USE labl); 1.1079 + format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_imm_short" %} 1.1080 + 1.1081 + ins_encode %{ 1.1082 + Register op1 = $src1$$Register; 1.1083 + int val = $src2$$constant; 1.1084 + Label &L = *($labl$$label); 1.1085 + int flag = $cmp$$cmpcode; 1.1086 + 1.1087 + __ move(AT, val); 1.1088 + switch(flag) { 1.1089 + case 0x01: //equal 1.1090 + if (&L) 1.1091 + __ beq(op1, AT, L); 1.1092 + else 1.1093 + __ beq(op1, AT, (int)0); 1.1094 + break; 1.1095 + case 0x02: //not_equal 1.1096 + if (&L) 1.1097 + __ bne(op1, AT, L); 1.1098 + else 1.1099 + __ bne(op1, AT, (int)0); 1.1100 + break; 1.1101 + case 0x03: //above 1.1102 + __ sltu(AT, AT, op1); 1.1103 + if(&L) 1.1104 + __ bne(R0, AT, L); 1.1105 + else 1.1106 + __ bne(R0, AT, (int)0); 1.1107 + break; 1.1108 + case 0x04: //above_equal 1.1109 + __ sltu(AT, op1, AT); 1.1110 + if(&L) 1.1111 + __ beq(AT, R0, L); 1.1112 + else 1.1113 + __ beq(AT, R0, (int)0); 1.1114 + break; 1.1115 + case 0x05: //below 1.1116 + __ sltu(AT, op1, AT); 1.1117 + if(&L) 1.1118 + __ bne(R0, AT, L); 1.1119 + else 1.1120 + __ bne(R0, AT, (int)0); 1.1121 + break; 1.1122 + case 0x06: //below_equal 1.1123 + __ sltu(AT, AT, op1); 1.1124 + if(&L) 1.1125 + __ beq(AT, R0, L); 1.1126 + else 1.1127 + __ beq(AT, R0, (int)0); 1.1128 + break; 1.1129 + default: 1.1130 + Unimplemented(); 1.1131 + } 1.1132 + __ nop(); 1.1133 + %} 1.1134 + 1.1135 + ins_pc_relative(1); 1.1136 + ins_pipe( pipe_alu_branch ); 1.1137 + ins_short_branch(1); 1.1138 +%} 1.1139 + 1.1140 +instruct branchConI_reg_reg_short(cmpOp cmp, mRegI src1, mRegI src2, label labl) %{ 1.1141 + match( If cmp (CmpI src1 src2) ); 1.1142 + effect(USE labl); 1.1143 + format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_reg_short" %} 1.1144 + 1.1145 + ins_encode %{ 1.1146 + Register op1 = $src1$$Register; 1.1147 + Register op2 = $src2$$Register; 1.1148 + Label &L = *($labl$$label); 1.1149 + int flag = $cmp$$cmpcode; 1.1150 + 1.1151 + switch(flag) { 1.1152 + case 0x01: //equal 1.1153 + if (&L) 1.1154 + __ beq(op1, op2, L); 1.1155 + else 1.1156 + __ beq(op1, op2, (int)0); 1.1157 + break; 1.1158 + case 0x02: //not_equal 1.1159 + if (&L) 1.1160 + __ bne(op1, op2, L); 1.1161 + else 1.1162 + __ bne(op1, op2, (int)0); 1.1163 + break; 1.1164 + case 0x03: //above 1.1165 + __ slt(AT, op2, op1); 1.1166 + if(&L) 1.1167 + __ bne(R0, AT, L); 1.1168 + else 1.1169 + __ bne(R0, AT, (int)0); 1.1170 + break; 1.1171 + case 0x04: //above_equal 1.1172 + __ slt(AT, op1, op2); 1.1173 + if(&L) 1.1174 + __ beq(AT, R0, L); 1.1175 + else 1.1176 + __ beq(AT, R0, (int)0); 1.1177 + break; 1.1178 + case 0x05: //below 1.1179 + __ slt(AT, op1, op2); 1.1180 + if(&L) 1.1181 + __ bne(R0, AT, L); 1.1182 + else 1.1183 + __ bne(R0, AT, (int)0); 1.1184 + break; 1.1185 + case 0x06: //below_equal 1.1186 + __ slt(AT, op2, op1); 1.1187 + if(&L) 1.1188 + __ beq(AT, R0, L); 1.1189 + else 1.1190 + __ beq(AT, R0, (int)0); 1.1191 + break; 1.1192 + default: 1.1193 + Unimplemented(); 1.1194 + } 1.1195 + __ nop(); 1.1196 + %} 1.1197 + 1.1198 + ins_pc_relative(1); 1.1199 + ins_pipe( pipe_alu_branch ); 1.1200 + ins_short_branch(1); 1.1201 +%} 1.1202 + 1.1203 +instruct branchConI_reg_imm0_short(cmpOp cmp, mRegI src1, immI0 src2, label labl) %{ 1.1204 + match( If cmp (CmpI src1 src2) ); 1.1205 + effect(USE labl); 1.1206 + ins_cost(170); 1.1207 + format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_imm0_short" %} 1.1208 + 1.1209 + ins_encode %{ 1.1210 + Register op1 = $src1$$Register; 1.1211 + Label &L = *($labl$$label); 1.1212 + int flag = $cmp$$cmpcode; 1.1213 + 1.1214 + switch(flag) { 1.1215 + case 0x01: //equal 1.1216 + if (&L) 1.1217 + __ beq(op1, R0, L); 1.1218 + else 1.1219 + __ beq(op1, R0, (int)0); 1.1220 + break; 1.1221 + case 0x02: //not_equal 1.1222 + if (&L) 1.1223 + __ bne(op1, R0, L); 1.1224 + else 1.1225 + __ bne(op1, R0, (int)0); 1.1226 + break; 1.1227 + case 0x03: //greater 1.1228 + if(&L) 1.1229 + __ bgtz(op1, L); 1.1230 + else 1.1231 + __ bgtz(op1, (int)0); 1.1232 + break; 1.1233 + case 0x04: //greater_equal 1.1234 + if(&L) 1.1235 + __ bgez(op1, L); 1.1236 + else 1.1237 + __ bgez(op1, (int)0); 1.1238 + break; 1.1239 + case 0x05: //less 1.1240 + if(&L) 1.1241 + __ bltz(op1, L); 1.1242 + else 1.1243 + __ bltz(op1, (int)0); 1.1244 + break; 1.1245 + case 0x06: //less_equal 1.1246 + if(&L) 1.1247 + __ blez(op1, L); 1.1248 + else 1.1249 + __ blez(op1, (int)0); 1.1250 + break; 1.1251 + default: 1.1252 + Unimplemented(); 1.1253 + } 1.1254 + __ nop(); 1.1255 + %} 1.1256 + 1.1257 + ins_pc_relative(1); 1.1258 + ins_pipe( pipe_alu_branch ); 1.1259 + ins_short_branch(1); 1.1260 +%} 1.1261 + 1.1262 + 1.1263 +instruct branchConI_reg_imm_short(cmpOp cmp, mRegI src1, immI src2, label labl) %{ 1.1264 + match( If cmp (CmpI src1 src2) ); 1.1265 + effect(USE labl); 1.1266 + ins_cost(200); 1.1267 + format %{ "BR$cmp $src1, $src2, $labl #@branchConI_reg_imm_short" %} 1.1268 + 1.1269 + ins_encode %{ 1.1270 + Register op1 = $src1$$Register; 1.1271 + int val = $src2$$constant; 1.1272 + Label &L = *($labl$$label); 1.1273 + int flag = $cmp$$cmpcode; 1.1274 + 1.1275 + __ move(AT, val); 1.1276 + switch(flag) { 1.1277 + case 0x01: //equal 1.1278 + if (&L) 1.1279 + __ beq(op1, AT, L); 1.1280 + else 1.1281 + __ beq(op1, AT, (int)0); 1.1282 + break; 1.1283 + case 0x02: //not_equal 1.1284 + if (&L) 1.1285 + __ bne(op1, AT, L); 1.1286 + else 1.1287 + __ bne(op1, AT, (int)0); 1.1288 + break; 1.1289 + case 0x03: //greater 1.1290 + __ slt(AT, AT, op1); 1.1291 + if(&L) 1.1292 + __ bne(R0, AT, L); 1.1293 + else 1.1294 + __ bne(R0, AT, (int)0); 1.1295 + break; 1.1296 + case 0x04: //greater_equal 1.1297 + __ slt(AT, op1, AT); 1.1298 + if(&L) 1.1299 + __ beq(AT, R0, L); 1.1300 + else 1.1301 + __ beq(AT, R0, (int)0); 1.1302 + break; 1.1303 + case 0x05: //less 1.1304 + __ slt(AT, op1, AT); 1.1305 + if(&L) 1.1306 + __ bne(R0, AT, L); 1.1307 + else 1.1308 + __ bne(R0, AT, (int)0); 1.1309 + break; 1.1310 + case 0x06: //less_equal 1.1311 + __ slt(AT, AT, op1); 1.1312 + if(&L) 1.1313 + __ beq(AT, R0, L); 1.1314 + else 1.1315 + __ beq(AT, R0, (int)0); 1.1316 + break; 1.1317 + default: 1.1318 + Unimplemented(); 1.1319 + } 1.1320 + __ nop(); 1.1321 + %} 1.1322 + 1.1323 + ins_pc_relative(1); 1.1324 + ins_pipe( pipe_alu_branch ); 1.1325 + ins_short_branch(1); 1.1326 +%} 1.1327 + 1.1328 +instruct branchConIU_reg_imm0_short(cmpOpU cmp, mRegI src1, immI0 zero, label labl) %{ 1.1329 + match( If cmp (CmpU src1 zero) ); 1.1330 + effect(USE labl); 1.1331 + format %{ "BR$cmp $src1, zero, $labl #@branchConIU_reg_imm0_short" %} 1.1332 + 1.1333 + ins_encode %{ 1.1334 + Register op1 = $src1$$Register; 1.1335 + Label &L = *($labl$$label); 1.1336 + int flag = $cmp$$cmpcode; 1.1337 + 1.1338 + switch(flag) { 1.1339 + case 0x01: //equal 1.1340 + if (&L) 1.1341 + __ beq(op1, R0, L); 1.1342 + else 1.1343 + __ beq(op1, R0, (int)0); 1.1344 + break; 1.1345 + case 0x02: //not_equal 1.1346 + if (&L) 1.1347 + __ bne(op1, R0, L); 1.1348 + else 1.1349 + __ bne(op1, R0, (int)0); 1.1350 + break; 1.1351 + case 0x03: //above 1.1352 + if(&L) 1.1353 + __ bne(R0, op1, L); 1.1354 + else 1.1355 + __ bne(R0, op1, (int)0); 1.1356 + break; 1.1357 + case 0x04: //above_equal 1.1358 + if(&L) 1.1359 + __ beq(R0, R0, L); 1.1360 + else 1.1361 + __ beq(R0, R0, (int)0); 1.1362 + break; 1.1363 + case 0x05: //below 1.1364 + return; 1.1365 + break; 1.1366 + case 0x06: //below_equal 1.1367 + if(&L) 1.1368 + __ beq(op1, R0, L); 1.1369 + else 1.1370 + __ beq(op1, R0, (int)0); 1.1371 + break; 1.1372 + default: 1.1373 + Unimplemented(); 1.1374 + } 1.1375 + __ nop(); 1.1376 + %} 1.1377 + 1.1378 + ins_pc_relative(1); 1.1379 + ins_pipe( pipe_alu_branch ); 1.1380 + ins_short_branch(1); 1.1381 +%} 1.1382 + 1.1383 + 1.1384 +instruct branchConIU_reg_immI16_short(cmpOpU cmp, mRegI src1, immI16 src2, label labl) %{ 1.1385 + match( If cmp (CmpU src1 src2) ); 1.1386 + effect(USE labl); 1.1387 + ins_cost(180); 1.1388 + format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_immI16_short" %} 1.1389 + 1.1390 + ins_encode %{ 1.1391 + Register op1 = $src1$$Register; 1.1392 + int val = $src2$$constant; 1.1393 + Label &L = *($labl$$label); 1.1394 + int flag = $cmp$$cmpcode; 1.1395 + 1.1396 + switch(flag) { 1.1397 + case 0x01: //equal 1.1398 + __ move(AT, val); 1.1399 + if (&L) 1.1400 + __ beq(op1, AT, L); 1.1401 + else 1.1402 + __ beq(op1, AT, (int)0); 1.1403 + break; 1.1404 + case 0x02: //not_equal 1.1405 + __ move(AT, val); 1.1406 + if (&L) 1.1407 + __ bne(op1, AT, L); 1.1408 + else 1.1409 + __ bne(op1, AT, (int)0); 1.1410 + break; 1.1411 + case 0x03: //above 1.1412 + __ move(AT, val); 1.1413 + __ sltu(AT, AT, op1); 1.1414 + if(&L) 1.1415 + __ bne(R0, AT, L); 1.1416 + else 1.1417 + __ bne(R0, AT, (int)0); 1.1418 + break; 1.1419 + case 0x04: //above_equal 1.1420 + __ sltiu(AT, op1, val); 1.1421 + if(&L) 1.1422 + __ beq(AT, R0, L); 1.1423 + else 1.1424 + __ beq(AT, R0, (int)0); 1.1425 + break; 1.1426 + case 0x05: //below 1.1427 + __ sltiu(AT, op1, val); 1.1428 + if(&L) 1.1429 + __ bne(R0, AT, L); 1.1430 + else 1.1431 + __ bne(R0, AT, (int)0); 1.1432 + break; 1.1433 + case 0x06: //below_equal 1.1434 + __ move(AT, val); 1.1435 + __ sltu(AT, AT, op1); 1.1436 + if(&L) 1.1437 + __ beq(AT, R0, L); 1.1438 + else 1.1439 + __ beq(AT, R0, (int)0); 1.1440 + break; 1.1441 + default: 1.1442 + Unimplemented(); 1.1443 + } 1.1444 + __ nop(); 1.1445 + %} 1.1446 + 1.1447 + ins_pc_relative(1); 1.1448 + ins_pipe( pipe_alu_branch ); 1.1449 + ins_short_branch(1); 1.1450 +%} 1.1451 + 1.1452 + 1.1453 +instruct branchConL_regL_regL_short(cmpOp cmp, mRegL src1, mRegL src2, label labl) %{ 1.1454 + match( If cmp (CmpL src1 src2) ); 1.1455 + effect(USE labl); 1.1456 + format %{ "BR$cmp $src1, $src2, $labl #@branchConL_regL_regL_short" %} 1.1457 + ins_cost(250); 1.1458 + 1.1459 + ins_encode %{ 1.1460 + Register opr1_reg = as_Register($src1$$reg); 1.1461 + Register opr2_reg = as_Register($src2$$reg); 1.1462 + 1.1463 + Label &target = *($labl$$label); 1.1464 + int flag = $cmp$$cmpcode; 1.1465 + 1.1466 + switch(flag) { 1.1467 + case 0x01: //equal 1.1468 + if (&target) 1.1469 + __ beq(opr1_reg, opr2_reg, target); 1.1470 + else 1.1471 + __ beq(opr1_reg, opr2_reg, (int)0); 1.1472 + __ delayed()->nop(); 1.1473 + break; 1.1474 + 1.1475 + case 0x02: //not_equal 1.1476 + if(&target) 1.1477 + __ bne(opr1_reg, opr2_reg, target); 1.1478 + else 1.1479 + __ bne(opr1_reg, opr2_reg, (int)0); 1.1480 + __ delayed()->nop(); 1.1481 + break; 1.1482 + 1.1483 + case 0x03: //greater 1.1484 + __ slt(AT, opr2_reg, opr1_reg); 1.1485 + if(&target) 1.1486 + __ bne(AT, R0, target); 1.1487 + else 1.1488 + __ bne(AT, R0, (int)0); 1.1489 + __ delayed()->nop(); 1.1490 + break; 1.1491 + 1.1492 + case 0x04: //greater_equal 1.1493 + __ slt(AT, opr1_reg, opr2_reg); 1.1494 + if(&target) 1.1495 + __ beq(AT, R0, target); 1.1496 + else 1.1497 + __ beq(AT, R0, (int)0); 1.1498 + __ delayed()->nop(); 1.1499 + 1.1500 + break; 1.1501 + 1.1502 + case 0x05: //less 1.1503 + __ slt(AT, opr1_reg, opr2_reg); 1.1504 + if(&target) 1.1505 + __ bne(AT, R0, target); 1.1506 + else 1.1507 + __ bne(AT, R0, (int)0); 1.1508 + __ delayed()->nop(); 1.1509 + 1.1510 + break; 1.1511 + 1.1512 + case 0x06: //less_equal 1.1513 + __ slt(AT, opr2_reg, opr1_reg); 1.1514 + 1.1515 + if(&target) 1.1516 + __ beq(AT, R0, target); 1.1517 + else 1.1518 + __ beq(AT, R0, (int)0); 1.1519 + __ delayed()->nop(); 1.1520 + 1.1521 + break; 1.1522 + 1.1523 + default: 1.1524 + Unimplemented(); 1.1525 + } 1.1526 + %} 1.1527 + 1.1528 + 1.1529 + ins_pc_relative(1); 1.1530 + ins_pipe( pipe_alu_branch ); 1.1531 + ins_short_branch(1); 1.1532 +%} 1.1533 + 1.1534 + 1.1535 +instruct branchConL_regL_immL0_short(cmpOp cmp, mRegL src1, immL0 zero, label labl) %{ 1.1536 + match( If cmp (CmpL src1 zero) ); 1.1537 + effect(USE labl); 1.1538 + format %{ "BR$cmp $src1, zero, $labl #@branchConL_regL_immL0_short" %} 1.1539 + ins_cost(150); 1.1540 + 1.1541 + ins_encode %{ 1.1542 + Register opr1_reg = as_Register($src1$$reg); 1.1543 + Label &target = *($labl$$label); 1.1544 + int flag = $cmp$$cmpcode; 1.1545 + 1.1546 + switch(flag) { 1.1547 + case 0x01: //equal 1.1548 + if (&target) 1.1549 + __ beq(opr1_reg, R0, target); 1.1550 + else 1.1551 + __ beq(opr1_reg, R0, int(0)); 1.1552 + break; 1.1553 + 1.1554 + case 0x02: //not_equal 1.1555 + if(&target) 1.1556 + __ bne(opr1_reg, R0, target); 1.1557 + else 1.1558 + __ bne(opr1_reg, R0, (int)0); 1.1559 + break; 1.1560 + 1.1561 + case 0x03: //greater 1.1562 + if(&target) 1.1563 + __ bgtz(opr1_reg, target); 1.1564 + else 1.1565 + __ bgtz(opr1_reg, (int)0); 1.1566 + break; 1.1567 + 1.1568 + case 0x04: //greater_equal 1.1569 + if(&target) 1.1570 + __ bgez(opr1_reg, target); 1.1571 + else 1.1572 + __ bgez(opr1_reg, (int)0); 1.1573 + break; 1.1574 + 1.1575 + case 0x05: //less 1.1576 + __ slt(AT, opr1_reg, R0); 1.1577 + if(&target) 1.1578 + __ bne(AT, R0, target); 1.1579 + else 1.1580 + __ bne(AT, R0, (int)0); 1.1581 + break; 1.1582 + 1.1583 + case 0x06: //less_equal 1.1584 + if (&target) 1.1585 + __ blez(opr1_reg, target); 1.1586 + else 1.1587 + __ blez(opr1_reg, int(0)); 1.1588 + break; 1.1589 + 1.1590 + default: 1.1591 + Unimplemented(); 1.1592 + } 1.1593 + __ delayed()->nop(); 1.1594 + %} 1.1595 + 1.1596 + 1.1597 + ins_pc_relative(1); 1.1598 + ins_pipe( pipe_alu_branch ); 1.1599 + ins_short_branch(1); 1.1600 +%} 1.1601 + 1.1602 +instruct branchConL_regL_immL_short(cmpOp cmp, mRegL src1, immL src2, label labl) %{ 1.1603 + match( If cmp (CmpL src1 src2) ); 1.1604 + effect(USE labl); 1.1605 + format %{ "BR$cmp $src1, $src2, $labl #@branchConL_regL_immL_short" %} 1.1606 + ins_cost(180); 1.1607 + 1.1608 + ins_encode %{ 1.1609 + Register opr1_reg = as_Register($src1$$reg); 1.1610 + Register opr2_reg = AT; 1.1611 + 1.1612 + Label &target = *($labl$$label); 1.1613 + int flag = $cmp$$cmpcode; 1.1614 + 1.1615 + __ set64(opr2_reg, $src2$$constant); 1.1616 + 1.1617 + switch(flag) { 1.1618 + case 0x01: //equal 1.1619 + if (&target) 1.1620 + __ beq(opr1_reg, opr2_reg, target); 1.1621 + else 1.1622 + __ beq(opr1_reg, opr2_reg, (int)0); 1.1623 + break; 1.1624 + 1.1625 + case 0x02: //not_equal 1.1626 + if(&target) 1.1627 + __ bne(opr1_reg, opr2_reg, target); 1.1628 + else 1.1629 + __ bne(opr1_reg, opr2_reg, (int)0); 1.1630 + break; 1.1631 + 1.1632 + case 0x03: //greater 1.1633 + __ slt(AT, opr2_reg, opr1_reg); 1.1634 + if(&target) 1.1635 + __ bne(AT, R0, target); 1.1636 + else 1.1637 + __ bne(AT, R0, (int)0); 1.1638 + break; 1.1639 + 1.1640 + case 0x04: //greater_equal 1.1641 + __ slt(AT, opr1_reg, opr2_reg); 1.1642 + if(&target) 1.1643 + __ beq(AT, R0, target); 1.1644 + else 1.1645 + __ beq(AT, R0, (int)0); 1.1646 + break; 1.1647 + 1.1648 + case 0x05: //less 1.1649 + __ slt(AT, opr1_reg, opr2_reg); 1.1650 + if(&target) 1.1651 + __ bne(AT, R0, target); 1.1652 + else 1.1653 + __ bne(AT, R0, (int)0); 1.1654 + break; 1.1655 + 1.1656 + case 0x06: //less_equal 1.1657 + __ slt(AT, opr2_reg, opr1_reg); 1.1658 + if(&target) 1.1659 + __ beq(AT, R0, target); 1.1660 + else 1.1661 + __ beq(AT, R0, (int)0); 1.1662 + break; 1.1663 + 1.1664 + default: 1.1665 + Unimplemented(); 1.1666 + } 1.1667 + __ nop(); 1.1668 + %} 1.1669 + 1.1670 + 1.1671 + ins_pc_relative(1); 1.1672 + ins_pipe( pipe_alu_branch ); 1.1673 + ins_short_branch(1); 1.1674 +%} 1.1675 + 1.1676 + 1.1677 +//FIXME 1.1678 +instruct branchConF_reg_reg_short(cmpOp cmp, regF src1, regF src2, label labl) %{ 1.1679 + match( If cmp (CmpF src1 src2) ); 1.1680 + effect(USE labl); 1.1681 + format %{ "BR$cmp $src1, $src2, $labl #@branchConF_reg_reg_short" %} 1.1682 + 1.1683 + ins_encode %{ 1.1684 + FloatRegister reg_op1 = $src1$$FloatRegister; 1.1685 + FloatRegister reg_op2 = $src2$$FloatRegister; 1.1686 + Label &L = *($labl$$label); 1.1687 + int flag = $cmp$$cmpcode; 1.1688 + 1.1689 + switch(flag) { 1.1690 + case 0x01: //equal 1.1691 + __ c_eq_s(reg_op1, reg_op2); 1.1692 + if (&L) 1.1693 + __ bc1t(L); 1.1694 + else 1.1695 + __ bc1t((int)0); 1.1696 + break; 1.1697 + case 0x02: //not_equal 1.1698 + __ c_eq_s(reg_op1, reg_op2); 1.1699 + if (&L) 1.1700 + __ bc1f(L); 1.1701 + else 1.1702 + __ bc1f((int)0); 1.1703 + break; 1.1704 + case 0x03: //greater 1.1705 + __ c_ule_s(reg_op1, reg_op2); 1.1706 + if(&L) 1.1707 + __ bc1f(L); 1.1708 + else 1.1709 + __ bc1f((int)0); 1.1710 + break; 1.1711 + case 0x04: //greater_equal 1.1712 + __ c_ult_s(reg_op1, reg_op2); 1.1713 + if(&L) 1.1714 + __ bc1f(L); 1.1715 + else 1.1716 + __ bc1f((int)0); 1.1717 + break; 1.1718 + case 0x05: //less 1.1719 + __ c_ult_s(reg_op1, reg_op2); 1.1720 + if(&L) 1.1721 + __ bc1t(L); 1.1722 + else 1.1723 + __ bc1t((int)0); 1.1724 + break; 1.1725 + case 0x06: //less_equal 1.1726 + __ c_ule_s(reg_op1, reg_op2); 1.1727 + if(&L) 1.1728 + __ bc1t(L); 1.1729 + else 1.1730 + __ bc1t((int)0); 1.1731 + break; 1.1732 + default: 1.1733 + Unimplemented(); 1.1734 + } 1.1735 + __ nop(); 1.1736 + %} 1.1737 + 1.1738 + ins_pc_relative(1); 1.1739 + ins_pipe(pipe_slow); 1.1740 + ins_short_branch(1); 1.1741 +%} 1.1742 + 1.1743 +instruct branchConD_reg_reg_short(cmpOp cmp, regD src1, regD src2, label labl) %{ 1.1744 + match( If cmp (CmpD src1 src2) ); 1.1745 + effect(USE labl); 1.1746 + format %{ "BR$cmp $src1, $src2, $labl #@branchConD_reg_reg_short" %} 1.1747 + 1.1748 + ins_encode %{ 1.1749 + FloatRegister reg_op1 = $src1$$FloatRegister; 1.1750 + FloatRegister reg_op2 = $src2$$FloatRegister; 1.1751 + Label &L = *($labl$$label); 1.1752 + int flag = $cmp$$cmpcode; 1.1753 + 1.1754 + switch(flag) { 1.1755 + case 0x01: //equal 1.1756 + __ c_eq_d(reg_op1, reg_op2); 1.1757 + if (&L) 1.1758 + __ bc1t(L); 1.1759 + else 1.1760 + __ bc1t((int)0); 1.1761 + break; 1.1762 + case 0x02: //not_equal 1.1763 + //2016/4/19 aoqi: c_ueq_d cannot distinguish NaN from equal. Double.isNaN(Double) is implemented by 'f != f', so the use of c_ueq_d causes bugs. 1.1764 + __ c_eq_d(reg_op1, reg_op2); 1.1765 + if (&L) 1.1766 + __ bc1f(L); 1.1767 + else 1.1768 + __ bc1f((int)0); 1.1769 + break; 1.1770 + case 0x03: //greater 1.1771 + __ c_ule_d(reg_op1, reg_op2); 1.1772 + if(&L) 1.1773 + __ bc1f(L); 1.1774 + else 1.1775 + __ bc1f((int)0); 1.1776 + break; 1.1777 + case 0x04: //greater_equal 1.1778 + __ c_ult_d(reg_op1, reg_op2); 1.1779 + if(&L) 1.1780 + __ bc1f(L); 1.1781 + else 1.1782 + __ bc1f((int)0); 1.1783 + break; 1.1784 + case 0x05: //less 1.1785 + __ c_ult_d(reg_op1, reg_op2); 1.1786 + if(&L) 1.1787 + __ bc1t(L); 1.1788 + else 1.1789 + __ bc1t((int)0); 1.1790 + break; 1.1791 + case 0x06: //less_equal 1.1792 + __ c_ule_d(reg_op1, reg_op2); 1.1793 + if(&L) 1.1794 + __ bc1t(L); 1.1795 + else 1.1796 + __ bc1t((int)0); 1.1797 + break; 1.1798 + default: 1.1799 + Unimplemented(); 1.1800 + } 1.1801 + __ nop(); 1.1802 + %} 1.1803 + 1.1804 + ins_pc_relative(1); 1.1805 + ins_pipe(pipe_slow); 1.1806 + ins_short_branch(1); 1.1807 +%} 1.1808 + 1.1809 +// =================== End of branch instructions ========================== 1.1810 + 1.1811 // Call Runtime Instruction 1.1812 instruct CallRuntimeDirect(method meth) %{ 1.1813 match(CallRuntime ); 1.1814 @@ -12073,28 +13510,6 @@ 1.1815 %} 1.1816 */ 1.1817 1.1818 -// Jump Direct - Label defines a relative address from JMP 1.1819 -instruct jmpDir(label labl) %{ 1.1820 - match(Goto); 1.1821 - effect(USE labl); 1.1822 - 1.1823 - ins_cost(300); 1.1824 - format %{ "JMP $labl #@jmpDir" %} 1.1825 - 1.1826 - ins_encode %{ 1.1827 - Label &L = *($labl$$label); 1.1828 - if(&L) 1.1829 - __ b(L); 1.1830 - else 1.1831 - __ b(int(0)); 1.1832 - __ nop(); 1.1833 - %} 1.1834 - 1.1835 - ins_pipe( pipe_jump ); 1.1836 - ins_pc_relative(1); 1.1837 -%} 1.1838 - 1.1839 - 1.1840 1.1841 // Tail Jump; remove the return address; jump to target. 1.1842 // TailCall above leaves the return address around. 1.1843 @@ -12876,167 +14291,6 @@ 1.1844 ins_pipe( ialu_regI_imm16 ); 1.1845 %} 1.1846 1.1847 -// Jump Direct Conditional - Label defines a relative address from Jcc+1 1.1848 -instruct jmpLoopEnd(cmpOp cop, mRegI src1, mRegI src2, label labl) %{ 1.1849 - match(CountedLoopEnd cop (CmpI src1 src2)); 1.1850 - effect(USE labl); 1.1851 - 1.1852 - ins_cost(300); 1.1853 - format %{ "J$cop $src1, $src2, $labl\t# Loop end @ jmpLoopEnd" %} 1.1854 - ins_encode %{ 1.1855 - Register op1 = $src1$$Register; 1.1856 - Register op2 = $src2$$Register; 1.1857 - Label &L = *($labl$$label); 1.1858 - int flag = $cop$$cmpcode; 1.1859 - 1.1860 - switch(flag) { 1.1861 - case 0x01: //equal 1.1862 - if (&L) 1.1863 - __ beq(op1, op2, L); 1.1864 - else 1.1865 - __ beq(op1, op2, (int)0); 1.1866 - break; 1.1867 - case 0x02: //not_equal 1.1868 - if (&L) 1.1869 - __ bne(op1, op2, L); 1.1870 - else 1.1871 - __ bne(op1, op2, (int)0); 1.1872 - break; 1.1873 - case 0x03: //above 1.1874 - __ slt(AT, op2, op1); 1.1875 - if(&L) 1.1876 - __ bne(AT, R0, L); 1.1877 - else 1.1878 - __ bne(AT, R0, (int)0); 1.1879 - break; 1.1880 - case 0x04: //above_equal 1.1881 - __ slt(AT, op1, op2); 1.1882 - if(&L) 1.1883 - __ beq(AT, R0, L); 1.1884 - else 1.1885 - __ beq(AT, R0, (int)0); 1.1886 - break; 1.1887 - case 0x05: //below 1.1888 - __ slt(AT, op1, op2); 1.1889 - if(&L) 1.1890 - __ bne(AT, R0, L); 1.1891 - else 1.1892 - __ bne(AT, R0, (int)0); 1.1893 - break; 1.1894 - case 0x06: //below_equal 1.1895 - __ slt(AT, op2, op1); 1.1896 - if(&L) 1.1897 - __ beq(AT, R0, L); 1.1898 - else 1.1899 - __ beq(AT, R0, (int)0); 1.1900 - break; 1.1901 - default: 1.1902 - Unimplemented(); 1.1903 - } 1.1904 - __ nop(); 1.1905 - %} 1.1906 - ins_pipe( pipe_jump ); 1.1907 - ins_pc_relative(1); 1.1908 -%} 1.1909 - 1.1910 -instruct jmpLoopEnd_reg_immI(cmpOp cop, mRegI src1, immI src2, label labl) %{ 1.1911 - match(CountedLoopEnd cop (CmpI src1 src2)); 1.1912 - effect(USE labl); 1.1913 - 1.1914 - ins_cost(300); 1.1915 - format %{ "J$cop $src1, $src2, $labl\t# Loop end @ jmpLoopEnd_reg_immI" %} 1.1916 - ins_encode %{ 1.1917 - Register op1 = $src1$$Register; 1.1918 - Register op2 = AT; 1.1919 - Label &L = *($labl$$label); 1.1920 - int flag = $cop$$cmpcode; 1.1921 - 1.1922 - __ move(op2, $src2$$constant); 1.1923 - 1.1924 - switch(flag) { 1.1925 - case 0x01: //equal 1.1926 - if (&L) 1.1927 - __ beq(op1, op2, L); 1.1928 - else 1.1929 - __ beq(op1, op2, (int)0); 1.1930 - break; 1.1931 - case 0x02: //not_equal 1.1932 - if (&L) 1.1933 - __ bne(op1, op2, L); 1.1934 - else 1.1935 - __ bne(op1, op2, (int)0); 1.1936 - break; 1.1937 - case 0x03: //above 1.1938 - __ slt(AT, op2, op1); 1.1939 - if(&L) 1.1940 - __ bne(AT, R0, L); 1.1941 - else 1.1942 - __ bne(AT, R0, (int)0); 1.1943 - break; 1.1944 - case 0x04: //above_equal 1.1945 - __ slt(AT, op1, op2); 1.1946 - if(&L) 1.1947 - __ beq(AT, R0, L); 1.1948 - else 1.1949 - __ beq(AT, R0, (int)0); 1.1950 - break; 1.1951 - case 0x05: //below 1.1952 - __ slt(AT, op1, op2); 1.1953 - if(&L) 1.1954 - __ bne(AT, R0, L); 1.1955 - else 1.1956 - __ bne(AT, R0, (int)0); 1.1957 - break; 1.1958 - case 0x06: //below_equal 1.1959 - __ slt(AT, op2, op1); 1.1960 - if(&L) 1.1961 - __ beq(AT, R0, L); 1.1962 - else 1.1963 - __ beq(AT, R0, (int)0); 1.1964 - break; 1.1965 - default: 1.1966 - Unimplemented(); 1.1967 - } 1.1968 - __ nop(); 1.1969 - %} 1.1970 - ins_pipe( pipe_jump ); 1.1971 - ins_pc_relative(1); 1.1972 -%} 1.1973 - 1.1974 - 1.1975 -// This match pattern is created for StoreIConditional since I cannot match IfNode without a RegFlags! fujie 2012/07/17 1.1976 -instruct jmpCon_flags(cmpOp cop, FlagsReg cr, label labl) %{ 1.1977 - match(If cop cr); 1.1978 - effect(USE labl); 1.1979 - 1.1980 - ins_cost(300); 1.1981 - format %{ "J$cop $labl #mips uses AT as eflag @jmpCon_flags" %} 1.1982 - 1.1983 - ins_encode %{ 1.1984 - Label &L = *($labl$$label); 1.1985 - switch($cop$$cmpcode) { 1.1986 - case 0x01: //equal 1.1987 - if (&L) 1.1988 - __ bne(AT, R0, L); 1.1989 - else 1.1990 - __ bne(AT, R0, (int)0); 1.1991 - break; 1.1992 - case 0x02: //not equal 1.1993 - if (&L) 1.1994 - __ beq(AT, R0, L); 1.1995 - else 1.1996 - __ beq(AT, R0, (int)0); 1.1997 - break; 1.1998 - default: 1.1999 - Unimplemented(); 1.2000 - } 1.2001 - __ nop(); 1.2002 - %} 1.2003 - 1.2004 - ins_pipe( pipe_jump ); 1.2005 - ins_pc_relative(1); 1.2006 -%} 1.2007 - 1.2008 1.2009 // ============================================================================ 1.2010 // The 2nd slow-half of a subtype check. Scan the subklass's 2ndary superklass
2.1 --- a/src/share/vm/opto/output.cpp Thu May 24 19:21:48 2018 +0800 2.2 +++ b/src/share/vm/opto/output.cpp Thu May 24 19:24:53 2018 +0800 2.3 @@ -554,6 +554,10 @@ 2.4 DEBUG_ONLY( jmp_target[i] = bnum; ); 2.5 DEBUG_ONLY( jmp_rule[i] = mach->rule(); ); 2.6 } else { 2.7 +#ifdef MIPS64 2.8 + env()->record_method_not_compilable("Branch out of range for MIPS"); 2.9 + return; 2.10 +#endif 2.11 // The jump distance is not short, try again during next iteration. 2.12 has_short_branch_candidate = true; 2.13 } 2.14 @@ -1165,6 +1169,9 @@ 2.15 // Pre-compute the length of blocks and replace 2.16 // long branches with short if machine supports it. 2.17 shorten_branches(blk_starts, code_req, locs_req, stub_req); 2.18 +#ifdef MIPS64 2.19 + if (failing()) return NULL; // Branch out of range for MIPS 2.20 +#endif 2.21 2.22 // nmethod and CodeBuffer count stubs & constants as part of method's code. 2.23 // class HandlerImpl is platform-specific and defined in the *.ad files.
3.1 --- a/src/share/vm/runtime/globals.hpp Thu May 24 19:21:48 2018 +0800 3.2 +++ b/src/share/vm/runtime/globals.hpp Thu May 24 19:24:53 2018 +0800 3.3 @@ -3696,10 +3696,10 @@ 3.4 "The maximum number of interpreted frames to skip when searching "\ 3.5 "for recompilee") \ 3.6 \ 3.7 - develop(intx, DesiredMethodLimit, 8000, \ 3.8 + product(intx, DesiredMethodLimit, 8000, \ 3.9 "The desired maximum method size (in bytecodes) after inlining") \ 3.10 \ 3.11 - develop(intx, HugeMethodLimit, 8000, \ 3.12 + product(intx, HugeMethodLimit, 8000, \ 3.13 "Don't compile methods larger than this if " \ 3.14 "+DontCompileHugeMethods") \ 3.15 \
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/test/mips64/7046/TestCompileHugeMethod.java Thu May 24 19:24:53 2018 +0800 4.3 @@ -0,0 +1,1492 @@ 4.4 +/* 4.5 + * Copyright 2018 Loongson Technology. All Rights Reserved. 4.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4.7 + * 4.8 + * This code is free software; you can redistribute it and/or modify it 4.9 + * under the terms of the GNU General Public License version 2 only, as 4.10 + * published by the Free Software Foundation. 4.11 + * 4.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 4.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 4.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 4.15 + * version 2 for more details (a copy is included in the LICENSE file that 4.16 + * accompanied this code). 4.17 + * 4.18 + * You should have received a copy of the GNU General Public License version 4.19 + * 2 along with this work; if not, write to the Free Software Foundation, 4.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 4.21 + * 4.22 + */ 4.23 + 4.24 +/* 4.25 + * @test 4.26 + * bug-loongson 7046 4.27 + * @run main/othervm TestCompileHugeMethod 4.28 + */ 4.29 + 4.30 +public class TestCompileHugeMethod { 4.31 + public static float f0 = 0.1f; 4.32 + 4.33 + public static void main(String[] args) { 4.34 + for (int i = 0; i <= 50000; i++) { 4.35 + if (i % 3==0) { 4.36 + AHugeMethodIf(true); 4.37 + AHugeMethodFor(2); 4.38 + AHugeMethodWhile(2); 4.39 + } else { 4.40 + AHugeMethodIf(false); 4.41 + AHugeMethodFor(-1); 4.42 + AHugeMethodWhile(-1); 4.43 + } 4.44 + } 4.45 + System.out.println("Hello World"); 4.46 + } 4.47 + 4.48 + public static long AHugeMethodIf(boolean A){ 4.49 + long r = (long) f0; 4.50 + if (A) { 4.51 + r = 4.52 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.53 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.54 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.55 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.56 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.57 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.58 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.59 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.60 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.61 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.62 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.63 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.64 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.65 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.66 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.67 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.68 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.69 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.70 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.71 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.72 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.73 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.74 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.75 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.76 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.77 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.78 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.79 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.80 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.81 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.82 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.83 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.84 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.85 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.86 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.87 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.88 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.89 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.90 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.91 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.92 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.93 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.94 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.95 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.96 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.97 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.98 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.99 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.100 + foo(r); 4.101 + r = 4.102 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.103 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.104 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.105 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.106 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.107 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.108 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.109 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.110 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.111 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.112 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.113 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.114 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.115 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.116 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.117 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.118 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.119 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.120 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.121 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.122 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.123 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.124 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.125 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.126 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.127 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.128 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.129 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.130 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.131 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.132 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.133 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.134 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.135 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.136 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.137 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.138 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.139 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.140 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.141 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.142 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.143 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.144 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.145 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.146 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.147 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.148 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.149 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.150 + foo(r); 4.151 + r = 4.152 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.153 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.154 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.155 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.156 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.157 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.158 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.159 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.160 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.161 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.162 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.163 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.164 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.165 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.166 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.167 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.168 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.169 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.170 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.171 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.172 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.173 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.174 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.175 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.176 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.177 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.178 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.179 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.180 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.181 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.182 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.183 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.184 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.185 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.186 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.187 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.188 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.189 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.190 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.191 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.192 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.193 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.194 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.195 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.196 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.197 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.198 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.199 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.200 + foo(r); 4.201 + r = 4.202 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.203 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.204 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.205 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.206 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.207 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.208 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.209 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.210 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.211 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.212 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.213 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.214 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.215 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.216 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.217 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.218 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.219 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.220 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.221 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.222 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.223 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.224 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.225 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.226 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.227 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.228 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.229 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.230 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.231 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.232 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.233 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.234 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.235 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.236 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.237 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.238 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.239 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.240 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.241 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.242 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.243 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.244 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.245 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.246 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.247 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.248 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.249 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.250 + foo(r); 4.251 + r = 4.252 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.253 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.254 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.255 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.256 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.257 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.258 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.259 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.260 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.261 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.262 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.263 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.264 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.265 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.266 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.267 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.268 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.269 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.270 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.271 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.272 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.273 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.274 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.275 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.276 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.277 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.278 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.279 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.280 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.281 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.282 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.283 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.284 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.285 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.286 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.287 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.288 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.289 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.290 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.291 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.292 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.293 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.294 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.295 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.296 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.297 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.298 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.299 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.300 + foo(r); 4.301 + r = 4.302 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.303 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.304 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.305 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.306 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.307 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.308 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.309 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.310 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.311 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.312 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.313 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.314 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.315 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.316 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.317 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.318 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.319 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.320 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.321 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.322 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.323 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.324 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.325 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.326 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.327 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.328 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.329 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.330 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.331 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.332 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.333 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.334 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.335 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.336 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.337 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.338 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.339 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.340 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.341 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.342 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.343 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.344 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.345 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.346 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.347 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.348 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.349 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.350 + foo(r); 4.351 + r = 4.352 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.353 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.354 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.355 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.356 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.357 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.358 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.359 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.360 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.361 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.362 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.363 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.364 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.365 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.366 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.367 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.368 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.369 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.370 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.371 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.372 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.373 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.374 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.375 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.376 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.377 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.378 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.379 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.380 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.381 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.382 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.383 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.384 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.385 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.386 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.387 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.388 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.389 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.390 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.391 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.392 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.393 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.394 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.395 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.396 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.397 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.398 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.399 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.400 + foo(r); 4.401 + r = 4.402 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.403 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.404 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.405 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.406 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.407 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.408 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.409 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.410 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.411 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.412 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.413 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.414 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.415 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.416 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.417 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.418 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.419 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.420 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.421 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.422 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.423 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.424 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.425 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.426 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.427 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.428 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.429 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.430 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.431 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.432 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.433 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.434 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.435 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.436 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.437 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.438 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.439 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.440 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.441 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.442 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.443 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.444 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.445 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.446 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.447 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.448 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.449 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.450 + foo(r); 4.451 + r = 4.452 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.453 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.454 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.455 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.456 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.457 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.458 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.459 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.460 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.461 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.462 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.463 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.464 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.465 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.466 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.467 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.468 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.469 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.470 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.471 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.472 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.473 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.474 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.475 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.476 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.477 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.478 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.479 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.480 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.481 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.482 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.483 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.484 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.485 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.486 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.487 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.488 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.489 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.490 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.491 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.492 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.493 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.494 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.495 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.496 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.497 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.498 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.499 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.500 + foo(r); 4.501 + } else { 4.502 + r = (long) f0; 4.503 + } 4.504 + return r; 4.505 + } 4.506 + 4.507 + public static long AHugeMethodFor(long A){ 4.508 + long r = (long) f0; 4.509 + for (int j = 0; j < A; j++) { 4.510 + r = 4.511 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.512 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.513 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.514 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.515 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.516 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.517 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.518 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.519 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.520 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.521 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.522 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.523 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.524 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.525 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.526 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.527 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.528 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.529 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.530 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.531 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.532 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.533 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.534 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.535 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.536 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.537 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.538 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.539 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.540 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.541 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.542 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.543 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.544 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.545 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.546 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.547 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.548 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.549 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.550 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.551 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.552 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.553 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.554 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.555 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.556 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.557 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.558 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.559 + foo(r); 4.560 + r = 4.561 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.562 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.563 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.564 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.565 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.566 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.567 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.568 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.569 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.570 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.571 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.572 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.573 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.574 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.575 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.576 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.577 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.578 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.579 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.580 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.581 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.582 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.583 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.584 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.585 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.586 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.587 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.588 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.589 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.590 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.591 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.592 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.593 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.594 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.595 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.596 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.597 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.598 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.599 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.600 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.601 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.602 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.603 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.604 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.605 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.606 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.607 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.608 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.609 + foo(r); 4.610 + r = 4.611 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.612 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.613 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.614 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.615 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.616 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.617 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.618 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.619 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.620 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.621 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.622 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.623 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.624 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.625 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.626 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.627 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.628 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.629 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.630 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.631 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.632 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.633 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.634 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.635 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.636 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.637 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.638 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.639 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.640 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.641 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.642 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.643 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.644 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.645 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.646 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.647 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.648 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.649 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.650 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.651 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.652 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.653 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.654 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.655 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.656 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.657 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.658 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.659 + foo(r); 4.660 + r = 4.661 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.662 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.663 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.664 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.665 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.666 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.667 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.668 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.669 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.670 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.671 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.672 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.673 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.674 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.675 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.676 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.677 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.678 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.679 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.680 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.681 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.682 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.683 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.684 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.685 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.686 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.687 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.688 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.689 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.690 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.691 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.692 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.693 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.694 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.695 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.696 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.697 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.698 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.699 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.700 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.701 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.702 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.703 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.704 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.705 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.706 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.707 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.708 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.709 + foo(r); 4.710 + r = 4.711 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.712 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.713 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.714 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.715 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.716 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.717 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.718 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.719 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.720 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.721 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.722 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.723 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.724 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.725 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.726 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.727 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.728 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.729 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.730 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.731 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.732 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.733 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.734 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.735 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.736 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.737 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.738 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.739 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.740 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.741 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.742 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.743 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.744 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.745 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.746 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.747 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.748 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.749 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.750 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.751 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.752 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.753 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.754 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.755 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.756 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.757 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.758 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.759 + foo(r); 4.760 + r = 4.761 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.762 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.763 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.764 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.765 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.766 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.767 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.768 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.769 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.770 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.771 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.772 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.773 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.774 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.775 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.776 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.777 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.778 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.779 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.780 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.781 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.782 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.783 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.784 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.785 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.786 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.787 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.788 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.789 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.790 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.791 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.792 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.793 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.794 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.795 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.796 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.797 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.798 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.799 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.800 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.801 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.802 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.803 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.804 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.805 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.806 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.807 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.808 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.809 + foo(r); 4.810 + r = 4.811 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.812 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.813 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.814 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.815 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.816 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.817 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.818 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.819 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.820 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.821 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.822 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.823 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.824 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.825 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.826 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.827 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.828 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.829 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.830 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.831 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.832 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.833 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.834 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.835 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.836 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.837 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.838 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.839 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.840 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.841 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.842 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.843 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.844 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.845 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.846 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.847 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.848 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.849 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.850 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.851 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.852 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.853 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.854 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.855 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.856 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.857 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.858 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.859 + foo(r); 4.860 + r = 4.861 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.862 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.863 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.864 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.865 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.866 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.867 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.868 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.869 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.870 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.871 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.872 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.873 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.874 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.875 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.876 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.877 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.878 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.879 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.880 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.881 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.882 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.883 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.884 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.885 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.886 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.887 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.888 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.889 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.890 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.891 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.892 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.893 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.894 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.895 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.896 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.897 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.898 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.899 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.900 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.901 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.902 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.903 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.904 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.905 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.906 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.907 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.908 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.909 + foo(r); 4.910 + r = 4.911 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.912 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.913 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.914 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.915 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.916 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.917 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.918 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.919 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.920 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.921 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.922 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.923 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.924 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.925 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.926 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.927 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.928 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.929 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.930 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.931 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.932 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.933 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.934 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.935 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.936 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.937 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.938 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.939 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.940 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.941 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.942 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.943 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.944 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.945 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.946 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.947 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.948 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.949 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.950 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.951 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.952 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.953 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.954 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.955 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.956 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.957 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.958 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.959 + foo(r); 4.960 + } 4.961 + return r; 4.962 + } 4.963 + 4.964 + public static long AHugeMethodWhile(int A){ 4.965 + long r = (long) f0; 4.966 + while (A > 0) { 4.967 + r = 4.968 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.969 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.970 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.971 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.972 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.973 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.974 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.975 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.976 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.977 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.978 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.979 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.980 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.981 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.982 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.983 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.984 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.985 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.986 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.987 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.988 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.989 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.990 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.991 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.992 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.993 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.994 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.995 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.996 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.997 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.998 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.999 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1000 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1001 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1002 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1003 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1004 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1005 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1006 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1007 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1008 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1009 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1010 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1011 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1012 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1013 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1014 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1015 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1016 + foo(r); 4.1017 + r = 4.1018 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1019 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1020 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1021 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1022 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1023 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1024 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1025 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1026 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1027 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1028 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1029 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1030 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1031 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1032 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1033 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1034 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1035 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1036 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1037 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1038 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1039 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1040 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1041 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1042 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1043 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1044 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1045 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1046 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1047 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1048 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1049 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1050 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1051 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1052 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1053 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1054 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1055 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1056 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1057 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1058 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1059 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1060 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1061 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1062 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1063 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1064 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1065 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1066 + foo(r); 4.1067 + r = 4.1068 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1069 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1070 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1071 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1072 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1073 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1074 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1075 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1076 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1077 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1078 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1079 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1080 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1081 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1082 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1083 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1084 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1085 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1086 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1087 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1088 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1089 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1090 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1091 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1092 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1093 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1094 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1095 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1096 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1097 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1098 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1099 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1100 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1101 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1102 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1103 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1104 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1105 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1106 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1107 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1108 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1109 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1110 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1111 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1112 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1113 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1114 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1115 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1116 + foo(r); 4.1117 + r = 4.1118 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1119 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1120 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1121 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1122 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1123 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1124 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1125 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1126 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1127 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1128 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1129 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1130 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1131 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1132 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1133 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1134 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1135 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1136 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1137 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1138 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1139 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1140 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1141 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1142 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1143 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1144 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1145 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1146 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1147 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1148 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1149 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1150 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1151 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1152 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1153 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1154 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1155 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1156 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1157 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1158 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1159 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1160 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1161 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1162 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1163 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1164 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1165 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1166 + foo(r); 4.1167 + r = 4.1168 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1169 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1170 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1171 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1172 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1173 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1174 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1175 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1176 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1177 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1178 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1179 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1180 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1181 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1182 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1183 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1184 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1185 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1186 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1187 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1188 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1189 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1190 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1191 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1192 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1193 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1194 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1195 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1196 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1197 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1198 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1199 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1200 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1201 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1202 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1203 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1204 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1205 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1206 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1207 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1208 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1209 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1210 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1211 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1212 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1213 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1214 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1215 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1216 + foo(r); 4.1217 + r = 4.1218 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1219 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1220 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1221 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1222 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1223 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1224 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1225 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1226 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1227 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1228 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1229 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1230 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1231 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1232 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1233 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1234 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1235 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1236 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1237 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1238 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1239 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1240 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1241 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1242 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1243 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1244 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1245 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1246 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1247 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1248 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1249 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1250 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1251 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1252 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1253 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1254 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1255 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1256 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1257 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1258 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1259 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1260 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1261 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1262 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1263 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1264 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1265 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1266 + foo(r); 4.1267 + r = 4.1268 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1269 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1270 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1271 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1272 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1273 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1274 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1275 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1276 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1277 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1278 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1279 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1280 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1281 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1282 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1283 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1284 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1285 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1286 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1287 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1288 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1289 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1290 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1291 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1292 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1293 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1294 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1295 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1296 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1297 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1298 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1299 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1300 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1301 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1302 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1303 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1304 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1305 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1306 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1307 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1308 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1309 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1310 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1311 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1312 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1313 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1314 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1315 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1316 + foo(r); 4.1317 + r = 4.1318 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1319 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1320 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1321 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1322 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1323 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1324 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1325 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1326 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1327 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1328 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1329 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1330 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1331 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1332 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1333 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1334 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1335 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1336 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1337 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1338 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1339 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1340 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1341 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1342 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1343 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1344 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1345 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1346 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1347 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1348 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1349 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1350 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1351 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1352 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1353 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1354 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1355 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1356 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1357 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1358 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1359 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1360 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1361 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1362 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1363 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1364 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1365 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1366 + foo(r); 4.1367 + r = 4.1368 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1369 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1370 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1371 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1372 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1373 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1374 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1375 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1376 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1377 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1378 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1379 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1380 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1381 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1382 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1383 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1384 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1385 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1386 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1387 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1388 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1389 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1390 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1391 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1392 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1393 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1394 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1395 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1396 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1397 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1398 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1399 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1400 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1401 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1402 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1403 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1404 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1405 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1406 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1407 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1408 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1409 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1410 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1411 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1412 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1413 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1414 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1415 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1416 + foo(r); 4.1417 + A --; 4.1418 + } 4.1419 + return r; 4.1420 + } 4.1421 + 4.1422 + public static final long foo(long A){ 4.1423 + //return A; 4.1424 + return 4.1425 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1426 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1427 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1428 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1429 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1430 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1431 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1432 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1433 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1434 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1435 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1436 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1437 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1438 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1439 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1440 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1441 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1442 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1443 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1444 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1445 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1446 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1447 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1448 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1449 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1450 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1451 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1452 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1453 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1454 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1455 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1456 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1457 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1458 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1459 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1460 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1461 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1462 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1463 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1464 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1465 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1466 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1467 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1468 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1469 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1470 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1471 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1472 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1473 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1474 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1475 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1476 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1477 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1478 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1479 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1480 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1481 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1482 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1483 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1484 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1485 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1486 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1487 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1488 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1489 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1490 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1491 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1492 + (long) (float) (int) (double) (long) (float) (int) (double) (long) (float) (int) (double) 4.1493 + A; 4.1494 + } 4.1495 +}