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 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
576 | 576 |
577 // Unlink the stack handler on top of the stack from the try handler chain. | 577 // Unlink the stack handler on top of the stack from the try handler chain. |
578 void PopTryHandler(); | 578 void PopTryHandler(); |
579 | 579 |
580 // Throw to the top handler in the try hander chain. | 580 // Throw to the top handler in the try hander chain. |
581 void Throw(Register value); | 581 void Throw(Register value); |
582 | 582 |
583 // Throw past all JS frames to the top JS entry frame. | 583 // Throw past all JS frames to the top JS entry frame. |
584 void ThrowUncatchable(Register value); | 584 void ThrowUncatchable(Register value); |
585 | 585 |
| 586 // Throw a message string as an exception. |
| 587 void Throw(BailoutReason reason); |
| 588 |
| 589 // Throw a message string as an exception if a condition is not true. |
| 590 void ThrowIfNot(Condition cc, BailoutReason reason); |
| 591 |
586 // --------------------------------------------------------------------------- | 592 // --------------------------------------------------------------------------- |
587 // Inline caching support | 593 // Inline caching support |
588 | 594 |
589 // Generate code for checking access rights - used for security checks | 595 // Generate code for checking access rights - used for security checks |
590 // on access to global objects across environments. The holder register | 596 // on access to global objects across environments. The holder register |
591 // is left untouched, but the scratch register is clobbered. | 597 // is left untouched, but the scratch register is clobbered. |
592 void CheckAccessGlobalProxy(Register holder_reg, | 598 void CheckAccessGlobalProxy(Register holder_reg, |
593 Register scratch1, | 599 Register scratch1, |
594 Register scratch2, | 600 Register scratch2, |
595 Label* miss); | 601 Label* miss); |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 | 940 |
935 // Checks if the given register or operand is a unique name | 941 // Checks if the given register or operand is a unique name |
936 void JumpIfNotUniqueName(Register reg, Label* not_unique_name, | 942 void JumpIfNotUniqueName(Register reg, Label* not_unique_name, |
937 Label::Distance distance = Label::kFar) { | 943 Label::Distance distance = Label::kFar) { |
938 JumpIfNotUniqueName(Operand(reg), not_unique_name, distance); | 944 JumpIfNotUniqueName(Operand(reg), not_unique_name, distance); |
939 } | 945 } |
940 | 946 |
941 void JumpIfNotUniqueName(Operand operand, Label* not_unique_name, | 947 void JumpIfNotUniqueName(Operand operand, Label* not_unique_name, |
942 Label::Distance distance = Label::kFar); | 948 Label::Distance distance = Label::kFar); |
943 | 949 |
| 950 void EmitSeqStringSetCharCheck(Register string, |
| 951 Register index, |
| 952 Register value, |
| 953 uint32_t encoding_mask); |
| 954 |
944 static int SafepointRegisterStackIndex(Register reg) { | 955 static int SafepointRegisterStackIndex(Register reg) { |
945 return SafepointRegisterStackIndex(reg.code()); | 956 return SafepointRegisterStackIndex(reg.code()); |
946 } | 957 } |
947 | 958 |
948 // Activation support. | 959 // Activation support. |
949 void EnterFrame(StackFrame::Type type); | 960 void EnterFrame(StackFrame::Type type); |
950 void LeaveFrame(StackFrame::Type type); | 961 void LeaveFrame(StackFrame::Type type); |
951 | 962 |
952 // Expects object in eax and returns map with validated enum cache | 963 // Expects object in eax and returns map with validated enum cache |
953 // in eax. Assumes that any other register can be used as a scratch. | 964 // in eax. Assumes that any other register can be used as a scratch. |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1116 } \ | 1127 } \ |
1117 masm-> | 1128 masm-> |
1118 #else | 1129 #else |
1119 #define ACCESS_MASM(masm) masm-> | 1130 #define ACCESS_MASM(masm) masm-> |
1120 #endif | 1131 #endif |
1121 | 1132 |
1122 | 1133 |
1123 } } // namespace v8::internal | 1134 } } // namespace v8::internal |
1124 | 1135 |
1125 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ | 1136 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ |
OLD | NEW |