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

Side by Side Diff: src/mips/macro-assembler-mips.h

Issue 68793008: MIPS: Fixed crashes exposed though fuzzing. (Closed) Base URL: https://github.com/v8/v8.git@gbl
Patch Set: Created 7 years, 1 month 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
« no previous file with comments | « src/mips/lithium-mips.cc ('k') | src/mips/macro-assembler-mips.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 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 949 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 // Must preserve the result register. 960 // Must preserve the result register.
961 void PopTryHandler(); 961 void PopTryHandler();
962 962
963 // Passes thrown value to the handler of top of the try handler chain. 963 // Passes thrown value to the handler of top of the try handler chain.
964 void Throw(Register value); 964 void Throw(Register value);
965 965
966 // Propagates an uncatchable exception to the top of the current JS stack's 966 // Propagates an uncatchable exception to the top of the current JS stack's
967 // handler chain. 967 // handler chain.
968 void ThrowUncatchable(Register value); 968 void ThrowUncatchable(Register value);
969 969
970 // Throw a message string as an exception.
971 void Throw(BailoutReason reason);
972
973 // Throw a message string as an exception if a condition is not true.
974 void ThrowIf(Condition cc, BailoutReason reason, Register rs, Operand rt);
975
970 // Copies a fixed number of fields of heap objects from src to dst. 976 // Copies a fixed number of fields of heap objects from src to dst.
971 void CopyFields(Register dst, Register src, RegList temps, int field_count); 977 void CopyFields(Register dst, Register src, RegList temps, int field_count);
972 978
973 // Copies a number of bytes from src to dst. All registers are clobbered. On 979 // Copies a number of bytes from src to dst. All registers are clobbered. On
974 // exit src and dst will point to the place just after where the last byte was 980 // exit src and dst will point to the place just after where the last byte was
975 // read or written and length will be zero. 981 // read or written and length will be zero.
976 void CopyBytes(Register src, 982 void CopyBytes(Register src,
977 Register dst, 983 Register dst,
978 Register length, 984 Register length,
979 Register scratch); 985 Register scratch);
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 Label* failure); 1451 Label* failure);
1446 1452
1447 // Check if instance type is sequential ASCII string and jump to label if 1453 // Check if instance type is sequential ASCII string and jump to label if
1448 // it is not. 1454 // it is not.
1449 void JumpIfInstanceTypeIsNotSequentialAscii(Register type, 1455 void JumpIfInstanceTypeIsNotSequentialAscii(Register type,
1450 Register scratch, 1456 Register scratch,
1451 Label* failure); 1457 Label* failure);
1452 1458
1453 void JumpIfNotUniqueName(Register reg, Label* not_unique_name); 1459 void JumpIfNotUniqueName(Register reg, Label* not_unique_name);
1454 1460
1461 void EmitSeqStringSetCharCheck(Register string,
1462 Register index,
1463 Register value,
1464 Register scratch,
1465 uint32_t encoding_mask);
1466
1455 // Test that both first and second are sequential ASCII strings. 1467 // Test that both first and second are sequential ASCII strings.
1456 // Assume that they are non-smis. 1468 // Assume that they are non-smis.
1457 void JumpIfNonSmisNotBothSequentialAsciiStrings(Register first, 1469 void JumpIfNonSmisNotBothSequentialAsciiStrings(Register first,
1458 Register second, 1470 Register second,
1459 Register scratch1, 1471 Register scratch1,
1460 Register scratch2, 1472 Register scratch2,
1461 Label* failure); 1473 Label* failure);
1462 1474
1463 // Test that both first and second are sequential ASCII strings. 1475 // Test that both first and second are sequential ASCII strings.
1464 // Check that they are non-smis. 1476 // Check that they are non-smis.
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
1649 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 1661 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
1650 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1662 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1651 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1663 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1652 #else 1664 #else
1653 #define ACCESS_MASM(masm) masm-> 1665 #define ACCESS_MASM(masm) masm->
1654 #endif 1666 #endif
1655 1667
1656 } } // namespace v8::internal 1668 } } // namespace v8::internal
1657 1669
1658 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1670 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/mips/lithium-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698