Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(251)

Side by Side Diff: src/arm/code-stubs-arm.cc

Issue 6901089: Merge r7683, r7685 from the bleeding_edge into 3.1 branch. (Closed) Base URL: http://v8.googlecode.com/svn/branches/3.1/
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/runtime.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 3407 matching lines...) Expand 10 before | Expand all | Expand 10 after
3418 } 3418 }
3419 3419
3420 // A DIV operation expecting an integer result falls through 3420 // A DIV operation expecting an integer result falls through
3421 // to type transition. 3421 // to type transition.
3422 3422
3423 } else { 3423 } else {
3424 // We preserved r0 and r1 to be able to call runtime. 3424 // We preserved r0 and r1 to be able to call runtime.
3425 // Save the left value on the stack. 3425 // Save the left value on the stack.
3426 __ Push(r5, r4); 3426 __ Push(r5, r4);
3427 3427
3428 Label pop_and_call_runtime;
3429
3428 // Allocate a heap number to store the result. 3430 // Allocate a heap number to store the result.
3429 heap_number_result = r5; 3431 heap_number_result = r5;
3430 GenerateHeapResultAllocation(masm, 3432 GenerateHeapResultAllocation(masm,
3431 heap_number_result, 3433 heap_number_result,
3432 heap_number_map, 3434 heap_number_map,
3433 scratch1, 3435 scratch1,
3434 scratch2, 3436 scratch2,
3435 &call_runtime); 3437 &pop_and_call_runtime);
3436 3438
3437 // Load the left value from the value saved on the stack. 3439 // Load the left value from the value saved on the stack.
3438 __ Pop(r1, r0); 3440 __ Pop(r1, r0);
3439 3441
3440 // Call the C function to handle the double operation. 3442 // Call the C function to handle the double operation.
3441 FloatingPointHelper::CallCCodeForDoubleOperation( 3443 FloatingPointHelper::CallCCodeForDoubleOperation(
3442 masm, op_, heap_number_result, scratch1); 3444 masm, op_, heap_number_result, scratch1);
3445
3446 __ bind(&pop_and_call_runtime);
3447 __ Drop(2);
3448 __ b(&call_runtime);
3443 } 3449 }
3444 3450
3445 break; 3451 break;
3446 } 3452 }
3447 3453
3448 case Token::BIT_OR: 3454 case Token::BIT_OR:
3449 case Token::BIT_XOR: 3455 case Token::BIT_XOR:
3450 case Token::BIT_AND: 3456 case Token::BIT_AND:
3451 case Token::SAR: 3457 case Token::SAR:
3452 case Token::SHR: 3458 case Token::SHR:
(...skipping 3357 matching lines...) Expand 10 before | Expand all | Expand 10 after
6810 __ strb(untagged_value, MemOperand(external_pointer, untagged_key)); 6816 __ strb(untagged_value, MemOperand(external_pointer, untagged_key));
6811 __ Ret(); 6817 __ Ret();
6812 } 6818 }
6813 6819
6814 6820
6815 #undef __ 6821 #undef __
6816 6822
6817 } } // namespace v8::internal 6823 } } // namespace v8::internal
6818 6824
6819 #endif // V8_TARGET_ARCH_ARM 6825 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/runtime.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698