| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 HandleScope scope(isolate); | 52 HandleScope scope(isolate); |
| 53 | 53 |
| 54 Assembler assm(isolate, NULL, 0); | 54 Assembler assm(isolate, NULL, 0); |
| 55 | 55 |
| 56 __ function_descriptor(); | 56 __ function_descriptor(); |
| 57 | 57 |
| 58 __ add(r3, r3, r4); | 58 __ add(r3, r3, r4); |
| 59 __ blr(); | 59 __ blr(); |
| 60 | 60 |
| 61 CodeDesc desc; | 61 CodeDesc desc; |
| 62 assm.GetCode(&desc); | 62 assm.GetCode(isolate, &desc); |
| 63 Handle<Code> code = isolate->factory()->NewCode( | 63 Handle<Code> code = isolate->factory()->NewCode( |
| 64 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 64 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 65 #ifdef DEBUG | 65 #ifdef DEBUG |
| 66 code->Print(); | 66 code->Print(); |
| 67 #endif | 67 #endif |
| 68 F2 f = FUNCTION_CAST<F2>(code->entry()); | 68 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 69 intptr_t res = reinterpret_cast<intptr_t>( | 69 intptr_t res = reinterpret_cast<intptr_t>( |
| 70 CALL_GENERATED_CODE(isolate, f, 3, 4, 0, 0, 0)); | 70 CALL_GENERATED_CODE(isolate, f, 3, 4, 0, 0, 0)); |
| 71 ::printf("f() = %" V8PRIdPTR "\n", res); | 71 ::printf("f() = %" V8PRIdPTR "\n", res); |
| 72 CHECK_EQ(7, static_cast<int>(res)); | 72 CHECK_EQ(7, static_cast<int>(res)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 91 __ bind(&L); | 91 __ bind(&L); |
| 92 __ add(r3, r3, r4); | 92 __ add(r3, r3, r4); |
| 93 __ subi(r4, r4, Operand(1)); | 93 __ subi(r4, r4, Operand(1)); |
| 94 | 94 |
| 95 __ bind(&C); | 95 __ bind(&C); |
| 96 __ cmpi(r4, Operand::Zero()); | 96 __ cmpi(r4, Operand::Zero()); |
| 97 __ bne(&L); | 97 __ bne(&L); |
| 98 __ blr(); | 98 __ blr(); |
| 99 | 99 |
| 100 CodeDesc desc; | 100 CodeDesc desc; |
| 101 assm.GetCode(&desc); | 101 assm.GetCode(isolate, &desc); |
| 102 Handle<Code> code = isolate->factory()->NewCode( | 102 Handle<Code> code = isolate->factory()->NewCode( |
| 103 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 103 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 104 #ifdef DEBUG | 104 #ifdef DEBUG |
| 105 code->Print(); | 105 code->Print(); |
| 106 #endif | 106 #endif |
| 107 F1 f = FUNCTION_CAST<F1>(code->entry()); | 107 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 108 intptr_t res = reinterpret_cast<intptr_t>( | 108 intptr_t res = reinterpret_cast<intptr_t>( |
| 109 CALL_GENERATED_CODE(isolate, f, 100, 0, 0, 0, 0)); | 109 CALL_GENERATED_CODE(isolate, f, 100, 0, 0, 0, 0)); |
| 110 ::printf("f() = %" V8PRIdPTR "\n", res); | 110 ::printf("f() = %" V8PRIdPTR "\n", res); |
| 111 CHECK_EQ(5050, static_cast<int>(res)); | 111 CHECK_EQ(5050, static_cast<int>(res)); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 142 // some relocated stuff here, not executed | 142 // some relocated stuff here, not executed |
| 143 __ RecordComment("dead code, just testing relocations"); | 143 __ RecordComment("dead code, just testing relocations"); |
| 144 __ mov(r0, Operand(isolate->factory()->true_value())); | 144 __ mov(r0, Operand(isolate->factory()->true_value())); |
| 145 __ RecordComment("dead code, just testing immediate operands"); | 145 __ RecordComment("dead code, just testing immediate operands"); |
| 146 __ mov(r0, Operand(-1)); | 146 __ mov(r0, Operand(-1)); |
| 147 __ mov(r0, Operand(0xFF000000)); | 147 __ mov(r0, Operand(0xFF000000)); |
| 148 __ mov(r0, Operand(0xF0F0F0F0)); | 148 __ mov(r0, Operand(0xF0F0F0F0)); |
| 149 __ mov(r0, Operand(0xFFF0FFFF)); | 149 __ mov(r0, Operand(0xFFF0FFFF)); |
| 150 | 150 |
| 151 CodeDesc desc; | 151 CodeDesc desc; |
| 152 assm.GetCode(&desc); | 152 assm.GetCode(isolate, &desc); |
| 153 Handle<Code> code = isolate->factory()->NewCode( | 153 Handle<Code> code = isolate->factory()->NewCode( |
| 154 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 154 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 155 #ifdef DEBUG | 155 #ifdef DEBUG |
| 156 code->Print(); | 156 code->Print(); |
| 157 #endif | 157 #endif |
| 158 F1 f = FUNCTION_CAST<F1>(code->entry()); | 158 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 159 intptr_t res = reinterpret_cast<intptr_t>( | 159 intptr_t res = reinterpret_cast<intptr_t>( |
| 160 CALL_GENERATED_CODE(isolate, f, 10, 0, 0, 0, 0)); | 160 CALL_GENERATED_CODE(isolate, f, 10, 0, 0, 0, 0)); |
| 161 ::printf("f() = %" V8PRIdPTR "\n", res); | 161 ::printf("f() = %" V8PRIdPTR "\n", res); |
| 162 CHECK_EQ(3628800, static_cast<int>(res)); | 162 CHECK_EQ(3628800, static_cast<int>(res)); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 __ addi(r11, fp, Operand(32)); | 215 __ addi(r11, fp, Operand(32)); |
| 216 __ ld(fp, MemOperand(r11, -8)); | 216 __ ld(fp, MemOperand(r11, -8)); |
| 217 #else | 217 #else |
| 218 __ addi(r11, fp, Operand(16)); | 218 __ addi(r11, fp, Operand(16)); |
| 219 __ lwz(fp, MemOperand(r11, -4)); | 219 __ lwz(fp, MemOperand(r11, -4)); |
| 220 #endif | 220 #endif |
| 221 __ mr(sp, r11); | 221 __ mr(sp, r11); |
| 222 __ blr(); | 222 __ blr(); |
| 223 | 223 |
| 224 CodeDesc desc; | 224 CodeDesc desc; |
| 225 assm.GetCode(&desc); | 225 assm.GetCode(isolate, &desc); |
| 226 Handle<Code> code = isolate->factory()->NewCode( | 226 Handle<Code> code = isolate->factory()->NewCode( |
| 227 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 227 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 228 #ifdef DEBUG | 228 #ifdef DEBUG |
| 229 code->Print(); | 229 code->Print(); |
| 230 #endif | 230 #endif |
| 231 F3 f = FUNCTION_CAST<F3>(code->entry()); | 231 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 232 t.i = 100000; | 232 t.i = 100000; |
| 233 t.c = 10; | 233 t.c = 10; |
| 234 t.s = 1000; | 234 t.s = 1000; |
| 235 intptr_t res = reinterpret_cast<intptr_t>( | 235 intptr_t res = reinterpret_cast<intptr_t>( |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 __ vldr(d1, r4, offsetof(T, m)); | 328 __ vldr(d1, r4, offsetof(T, m)); |
| 329 __ vneg(d0, d1); | 329 __ vneg(d0, d1); |
| 330 __ vstr(d0, r4, offsetof(T, m)); | 330 __ vstr(d0, r4, offsetof(T, m)); |
| 331 __ vldr(d1, r4, offsetof(T, n)); | 331 __ vldr(d1, r4, offsetof(T, n)); |
| 332 __ vneg(d0, d1); | 332 __ vneg(d0, d1); |
| 333 __ vstr(d0, r4, offsetof(T, n)); | 333 __ vstr(d0, r4, offsetof(T, n)); |
| 334 | 334 |
| 335 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); | 335 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); |
| 336 | 336 |
| 337 CodeDesc desc; | 337 CodeDesc desc; |
| 338 assm.GetCode(&desc); | 338 assm.GetCode(isolate, &desc); |
| 339 Object* code = isolate->heap()->CreateCode( | 339 Object* code = isolate->heap()->CreateCode( |
| 340 desc, | 340 desc, |
| 341 Code::ComputeFlags(Code::STUB), | 341 Code::ComputeFlags(Code::STUB), |
| 342 Handle<Code>())->ToObjectChecked(); | 342 Handle<Code>())->ToObjectChecked(); |
| 343 CHECK(code->IsCode()); | 343 CHECK(code->IsCode()); |
| 344 #ifdef DEBUG | 344 #ifdef DEBUG |
| 345 Code::cast(code)->Print(); | 345 Code::cast(code)->Print(); |
| 346 #endif | 346 #endif |
| 347 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); | 347 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); |
| 348 t.a = 1.5; | 348 t.a = 1.5; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 CpuFeatures::Scope scope(ARMv7); | 389 CpuFeatures::Scope scope(ARMv7); |
| 390 // On entry, r0 = 0xAAAAAAAA = 0b10..10101010. | 390 // On entry, r0 = 0xAAAAAAAA = 0b10..10101010. |
| 391 __ ubfx(r0, r0, 1, 12); // 0b00..010101010101 = 0x555 | 391 __ ubfx(r0, r0, 1, 12); // 0b00..010101010101 = 0x555 |
| 392 __ sbfx(r0, r0, 0, 5); // 0b11..111111110101 = -11 | 392 __ sbfx(r0, r0, 0, 5); // 0b11..111111110101 = -11 |
| 393 __ bfc(r0, 1, 3); // 0b11..111111110001 = -15 | 393 __ bfc(r0, 1, 3); // 0b11..111111110001 = -15 |
| 394 __ mov(r1, Operand(7)); | 394 __ mov(r1, Operand(7)); |
| 395 __ bfi(r0, r1, 3, 3); // 0b11..111111111001 = -7 | 395 __ bfi(r0, r1, 3, 3); // 0b11..111111111001 = -7 |
| 396 __ mov(pc, Operand(lr)); | 396 __ mov(pc, Operand(lr)); |
| 397 | 397 |
| 398 CodeDesc desc; | 398 CodeDesc desc; |
| 399 assm.GetCode(&desc); | 399 assm.GetCode(isolate, &desc); |
| 400 Object* code = isolate->heap()->CreateCode( | 400 Object* code = isolate->heap()->CreateCode( |
| 401 desc, | 401 desc, |
| 402 Code::ComputeFlags(Code::STUB), | 402 Code::ComputeFlags(Code::STUB), |
| 403 Handle<Code>())->ToObjectChecked(); | 403 Handle<Code>())->ToObjectChecked(); |
| 404 CHECK(code->IsCode()); | 404 CHECK(code->IsCode()); |
| 405 #ifdef DEBUG | 405 #ifdef DEBUG |
| 406 Code::cast(code)->Print(); | 406 Code::cast(code)->Print(); |
| 407 #endif | 407 #endif |
| 408 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); | 408 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); |
| 409 int res = reinterpret_cast<int>( | 409 int res = reinterpret_cast<int>( |
| (...skipping 15 matching lines...) Expand all Loading... |
| 425 if (CpuFeatures::IsSupported(ARMv7)) { | 425 if (CpuFeatures::IsSupported(ARMv7)) { |
| 426 CpuFeatures::Scope scope(ARMv7); | 426 CpuFeatures::Scope scope(ARMv7); |
| 427 __ usat(r1, 8, Operand(r0)); // Sat 0xFFFF to 0-255 = 0xFF. | 427 __ usat(r1, 8, Operand(r0)); // Sat 0xFFFF to 0-255 = 0xFF. |
| 428 __ usat(r2, 12, Operand(r0, ASR, 9)); // Sat (0xFFFF>>9) to 0-4095 = 0x7F. | 428 __ usat(r2, 12, Operand(r0, ASR, 9)); // Sat (0xFFFF>>9) to 0-4095 = 0x7F. |
| 429 __ usat(r3, 1, Operand(r0, LSL, 16)); // Sat (0xFFFF<<16) to 0-1 = 0x0. | 429 __ usat(r3, 1, Operand(r0, LSL, 16)); // Sat (0xFFFF<<16) to 0-1 = 0x0. |
| 430 __ addi(r0, r1, Operand(r2)); | 430 __ addi(r0, r1, Operand(r2)); |
| 431 __ addi(r0, r0, Operand(r3)); | 431 __ addi(r0, r0, Operand(r3)); |
| 432 __ mov(pc, Operand(lr)); | 432 __ mov(pc, Operand(lr)); |
| 433 | 433 |
| 434 CodeDesc desc; | 434 CodeDesc desc; |
| 435 assm.GetCode(&desc); | 435 assm.GetCode(isolate, &desc); |
| 436 Object* code = isolate->heap()->CreateCode( | 436 Object* code = isolate->heap()->CreateCode( |
| 437 desc, | 437 desc, |
| 438 Code::ComputeFlags(Code::STUB), | 438 Code::ComputeFlags(Code::STUB), |
| 439 Handle<Code>())->ToObjectChecked(); | 439 Handle<Code>())->ToObjectChecked(); |
| 440 CHECK(code->IsCode()); | 440 CHECK(code->IsCode()); |
| 441 #ifdef DEBUG | 441 #ifdef DEBUG |
| 442 Code::cast(code)->Print(); | 442 Code::cast(code)->Print(); |
| 443 #endif | 443 #endif |
| 444 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); | 444 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); |
| 445 int res = reinterpret_cast<int>( | 445 int res = reinterpret_cast<int>( |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 __ vmov(r0, s0); | 501 __ vmov(r0, s0); |
| 502 __ mov(pc, Operand(lr)); | 502 __ mov(pc, Operand(lr)); |
| 503 | 503 |
| 504 // The exception behaviour is not what we expected. | 504 // The exception behaviour is not what we expected. |
| 505 // Load a special value and return. | 505 // Load a special value and return. |
| 506 __ bind(&wrong_exception); | 506 __ bind(&wrong_exception); |
| 507 __ mov(r0, Operand(11223344)); | 507 __ mov(r0, Operand(11223344)); |
| 508 __ mov(pc, Operand(lr)); | 508 __ mov(pc, Operand(lr)); |
| 509 | 509 |
| 510 CodeDesc desc; | 510 CodeDesc desc; |
| 511 assm.GetCode(&desc); | 511 assm.GetCode(isolate, &desc); |
| 512 Object* code = isolate->heap()->CreateCode( | 512 Object* code = isolate->heap()->CreateCode( |
| 513 desc, | 513 desc, |
| 514 Code::ComputeFlags(Code::STUB), | 514 Code::ComputeFlags(Code::STUB), |
| 515 Handle<Code>())->ToObjectChecked(); | 515 Handle<Code>())->ToObjectChecked(); |
| 516 CHECK(code->IsCode()); | 516 CHECK(code->IsCode()); |
| 517 #ifdef DEBUG | 517 #ifdef DEBUG |
| 518 Code::cast(code)->Print(); | 518 Code::cast(code)->Print(); |
| 519 #endif | 519 #endif |
| 520 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); | 520 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); |
| 521 int res = reinterpret_cast<int>( | 521 int res = reinterpret_cast<int>( |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 689 __ vldm(ia_w, r4, s0, s3); | 689 __ vldm(ia_w, r4, s0, s3); |
| 690 __ vldm(ia_w, r4, s4, s7); | 690 __ vldm(ia_w, r4, s4, s7); |
| 691 | 691 |
| 692 __ addi(r4, r1, Operand(offsetof(F, a))); | 692 __ addi(r4, r1, Operand(offsetof(F, a))); |
| 693 __ vstm(ia_w, r4, s6, s7); | 693 __ vstm(ia_w, r4, s6, s7); |
| 694 __ vstm(ia_w, r4, s0, s5); | 694 __ vstm(ia_w, r4, s0, s5); |
| 695 | 695 |
| 696 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); | 696 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); |
| 697 | 697 |
| 698 CodeDesc desc; | 698 CodeDesc desc; |
| 699 assm.GetCode(&desc); | 699 assm.GetCode(isolate, &desc); |
| 700 Object* code = isolate->heap()->CreateCode( | 700 Object* code = isolate->heap()->CreateCode( |
| 701 desc, | 701 desc, |
| 702 Code::ComputeFlags(Code::STUB), | 702 Code::ComputeFlags(Code::STUB), |
| 703 Handle<Code>())->ToObjectChecked(); | 703 Handle<Code>())->ToObjectChecked(); |
| 704 CHECK(code->IsCode()); | 704 CHECK(code->IsCode()); |
| 705 #ifdef DEBUG | 705 #ifdef DEBUG |
| 706 Code::cast(code)->Print(); | 706 Code::cast(code)->Print(); |
| 707 #endif | 707 #endif |
| 708 F4 fn = FUNCTION_CAST<F4>(Code::cast(code)->entry()); | 708 F4 fn = FUNCTION_CAST<F4>(Code::cast(code)->entry()); |
| 709 d.a = 1.1; | 709 d.a = 1.1; |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 __ vldm(ia, r4, s4, s7); | 805 __ vldm(ia, r4, s4, s7); |
| 806 | 806 |
| 807 __ addi(r4, r1, Operand(offsetof(F, a))); | 807 __ addi(r4, r1, Operand(offsetof(F, a))); |
| 808 __ vstm(ia, r4, s6, s7); | 808 __ vstm(ia, r4, s6, s7); |
| 809 __ addi(r4, r4, Operand(2 * 4)); | 809 __ addi(r4, r4, Operand(2 * 4)); |
| 810 __ vstm(ia, r4, s0, s5); | 810 __ vstm(ia, r4, s0, s5); |
| 811 | 811 |
| 812 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); | 812 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); |
| 813 | 813 |
| 814 CodeDesc desc; | 814 CodeDesc desc; |
| 815 assm.GetCode(&desc); | 815 assm.GetCode(isolate, &desc); |
| 816 Object* code = isolate->heap()->CreateCode( | 816 Object* code = isolate->heap()->CreateCode( |
| 817 desc, | 817 desc, |
| 818 Code::ComputeFlags(Code::STUB), | 818 Code::ComputeFlags(Code::STUB), |
| 819 Handle<Code>())->ToObjectChecked(); | 819 Handle<Code>())->ToObjectChecked(); |
| 820 CHECK(code->IsCode()); | 820 CHECK(code->IsCode()); |
| 821 #ifdef DEBUG | 821 #ifdef DEBUG |
| 822 Code::cast(code)->Print(); | 822 Code::cast(code)->Print(); |
| 823 #endif | 823 #endif |
| 824 F4 fn = FUNCTION_CAST<F4>(Code::cast(code)->entry()); | 824 F4 fn = FUNCTION_CAST<F4>(Code::cast(code)->entry()); |
| 825 d.a = 1.1; | 825 d.a = 1.1; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 917 __ vldm(db_w, r4, s4, s7); | 917 __ vldm(db_w, r4, s4, s7); |
| 918 __ vldm(db_w, r4, s0, s3); | 918 __ vldm(db_w, r4, s0, s3); |
| 919 | 919 |
| 920 __ addi(r4, r1, Operand(offsetof(F, h) + 4)); | 920 __ addi(r4, r1, Operand(offsetof(F, h) + 4)); |
| 921 __ vstm(db_w, r4, s0, s5); | 921 __ vstm(db_w, r4, s0, s5); |
| 922 __ vstm(db_w, r4, s6, s7); | 922 __ vstm(db_w, r4, s6, s7); |
| 923 | 923 |
| 924 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); | 924 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); |
| 925 | 925 |
| 926 CodeDesc desc; | 926 CodeDesc desc; |
| 927 assm.GetCode(&desc); | 927 assm.GetCode(isolate, &desc); |
| 928 Object* code = isolate->heap()->CreateCode( | 928 Object* code = isolate->heap()->CreateCode( |
| 929 desc, | 929 desc, |
| 930 Code::ComputeFlags(Code::STUB), | 930 Code::ComputeFlags(Code::STUB), |
| 931 Handle<Code>())->ToObjectChecked(); | 931 Handle<Code>())->ToObjectChecked(); |
| 932 CHECK(code->IsCode()); | 932 CHECK(code->IsCode()); |
| 933 #ifdef DEBUG | 933 #ifdef DEBUG |
| 934 Code::cast(code)->Print(); | 934 Code::cast(code)->Print(); |
| 935 #endif | 935 #endif |
| 936 F4 fn = FUNCTION_CAST<F4>(Code::cast(code)->entry()); | 936 F4 fn = FUNCTION_CAST<F4>(Code::cast(code)->entry()); |
| 937 d.a = 1.1; | 937 d.a = 1.1; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1015 | 1015 |
| 1016 __ mov(r1, Operand(0xffffffff)); | 1016 __ mov(r1, Operand(0xffffffff)); |
| 1017 __ mov(r2, Operand::Zero()); | 1017 __ mov(r2, Operand::Zero()); |
| 1018 __ mov(r3, Operand(r2, ASR, 1), SetCC); // Unset the carry. | 1018 __ mov(r3, Operand(r2, ASR, 1), SetCC); // Unset the carry. |
| 1019 __ adc(r3, r1, Operand(r2)); | 1019 __ adc(r3, r1, Operand(r2)); |
| 1020 __ str(r3, MemOperand(r0, offsetof(I, d))); | 1020 __ str(r3, MemOperand(r0, offsetof(I, d))); |
| 1021 | 1021 |
| 1022 __ mov(pc, Operand(lr)); | 1022 __ mov(pc, Operand(lr)); |
| 1023 | 1023 |
| 1024 CodeDesc desc; | 1024 CodeDesc desc; |
| 1025 assm.GetCode(&desc); | 1025 assm.GetCode(isolate, &desc); |
| 1026 Object* code = isolate->heap()->CreateCode( | 1026 Object* code = isolate->heap()->CreateCode( |
| 1027 desc, | 1027 desc, |
| 1028 Code::ComputeFlags(Code::STUB), | 1028 Code::ComputeFlags(Code::STUB), |
| 1029 Handle<Code>())->ToObjectChecked(); | 1029 Handle<Code>())->ToObjectChecked(); |
| 1030 CHECK(code->IsCode()); | 1030 CHECK(code->IsCode()); |
| 1031 #ifdef DEBUG | 1031 #ifdef DEBUG |
| 1032 Code::cast(code)->Print(); | 1032 Code::cast(code)->Print(); |
| 1033 #endif | 1033 #endif |
| 1034 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); | 1034 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); |
| 1035 Object* dummy = CALL_GENERATED_CODE(isolate, f, &i, 0, 0, 0, 0); | 1035 Object* dummy = CALL_GENERATED_CODE(isolate, f, &i, 0, 0, 0, 0); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1051 Assembler assm(isolate, NULL, 0); | 1051 Assembler assm(isolate, NULL, 0); |
| 1052 Label target; | 1052 Label target; |
| 1053 __ b(eq, &target); | 1053 __ b(eq, &target); |
| 1054 __ b(ne, &target); | 1054 __ b(ne, &target); |
| 1055 __ bind(&target); | 1055 __ bind(&target); |
| 1056 __ nop(); | 1056 __ nop(); |
| 1057 } | 1057 } |
| 1058 #endif | 1058 #endif |
| 1059 | 1059 |
| 1060 #undef __ | 1060 #undef __ |
| OLD | NEW |