Handle Symbols in the LBranch instruction on x64.
This was an omission in https://code.google.com/p/v8/source/detail?r=14051. R=rossberg@chromium.org Review URL: https://codereview.chromium.org/22578002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
29bb553b1d
commit
a8e12c5a02
@ -469,6 +469,9 @@ void CompareNilICStub::UpdateStatus(Handle<Object> object) {
|
||||
|
||||
template<class StateType>
|
||||
void HydrogenCodeStub::TraceTransition(StateType from, StateType to) {
|
||||
// Note: Although a no-op transition is semantically OK, it is hinting at a
|
||||
// bug somewhere in our state transition machinery.
|
||||
ASSERT(from != to);
|
||||
#ifdef DEBUG
|
||||
if (!FLAG_trace_ic) return;
|
||||
char buffer[100];
|
||||
|
@ -2016,6 +2016,12 @@ void LCodeGen::DoBranch(LBranch* instr) {
|
||||
__ bind(¬_string);
|
||||
}
|
||||
|
||||
if (expected.Contains(ToBooleanStub::SYMBOL)) {
|
||||
// Symbol value -> true.
|
||||
__ CmpInstanceType(map, SYMBOL_TYPE);
|
||||
__ j(equal, instr->TrueLabel(chunk_));
|
||||
}
|
||||
|
||||
if (expected.Contains(ToBooleanStub::HEAP_NUMBER)) {
|
||||
// heap number -> false iff +0, -0, or NaN.
|
||||
Label not_heap_number;
|
||||
|
Loading…
Reference in New Issue
Block a user