OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 8047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8058 __ pop(rax); | 8058 __ pop(rax); |
8059 __ push(rdx); | 8059 __ push(rdx); |
8060 __ push(rax); | 8060 __ push(rax); |
8061 | 8061 |
8062 // Figure out which native to call and setup the arguments. | 8062 // Figure out which native to call and setup the arguments. |
8063 Builtins::JavaScript builtin; | 8063 Builtins::JavaScript builtin; |
8064 if (cc_ == equal) { | 8064 if (cc_ == equal) { |
8065 builtin = strict_ ? Builtins::STRICT_EQUALS : Builtins::EQUALS; | 8065 builtin = strict_ ? Builtins::STRICT_EQUALS : Builtins::EQUALS; |
8066 } else { | 8066 } else { |
8067 builtin = Builtins::COMPARE; | 8067 builtin = Builtins::COMPARE; |
8068 __ push(Immediate(NegativeComparisonResult(cc_))); | 8068 __ Push(Smi::FromInt(NegativeComparisonResult(cc_))); |
8069 } | 8069 } |
8070 | 8070 |
8071 // Restore return address on the stack. | 8071 // Restore return address on the stack. |
8072 __ push(rcx); | 8072 __ push(rcx); |
8073 | 8073 |
8074 // Call the native; it returns -1 (less), 0 (equal), or 1 (greater) | 8074 // Call the native; it returns -1 (less), 0 (equal), or 1 (greater) |
8075 // tagged as a small integer. | 8075 // tagged as a small integer. |
8076 __ InvokeBuiltin(builtin, JUMP_FUNCTION); | 8076 __ InvokeBuiltin(builtin, JUMP_FUNCTION); |
8077 } | 8077 } |
8078 | 8078 |
(...skipping 2517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10596 // Call the function from C++. | 10596 // Call the function from C++. |
10597 return FUNCTION_CAST<ModuloFunction>(buffer); | 10597 return FUNCTION_CAST<ModuloFunction>(buffer); |
10598 } | 10598 } |
10599 | 10599 |
10600 #endif | 10600 #endif |
10601 | 10601 |
10602 | 10602 |
10603 #undef __ | 10603 #undef __ |
10604 | 10604 |
10605 } } // namespace v8::internal | 10605 } } // namespace v8::internal |
OLD | NEW |