From d2dd02152caaad0e748f634cf8b5ed673bc037df Mon Sep 17 00:00:00 2001 From: "whesse@chromium.org" Date: Fri, 19 Feb 2010 10:05:33 +0000 Subject: [PATCH] Improve load of global variables. Review URL: http://codereview.chromium.org/651019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/ia32/codegen-ia32.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc index edf221bfb2..8f06f5d6f5 100644 --- a/src/ia32/codegen-ia32.cc +++ b/src/ia32/codegen-ia32.cc @@ -689,6 +689,9 @@ void CodeGenerator::LoadReference(Reference* ref) { // The expression is a variable proxy that does not rewrite to a // property. Global variables are treated as named property references. if (var->is_global()) { + // Named loads require object in eax. Named stores don't use references. + // Spilling eax makes it free, so LoadGlobal loads directly into eax. + frame_->Spill(eax); LoadGlobal(); ref->set_type(Reference::NAMED); } else {