• kmillikin@chromium.org's avatar
    Added support for assignments to global variables in the toplevel code · 4dfd4447
    kmillikin@chromium.org authored
    generator.  We use the normal store IC mechanism with the global
    object as the receiver.  The following code is generated for 'x=true'
    at toplevel.
    
    ======== IA32:
    
    27  mov eax,0xf5d06161          ;; object: 0xf5d06161 <true>
    32  mov ecx,0xf5d09c35          ;; object: 0xf5d09c35 <String[1]: x>
    37  push [esi+0x17]
    40  call StoreIC_Initialize  (0xf5ce75c0)    ;; code: STORE_IC, UNINITIALIZED
    45  mov [esp],eax
    
    ======== X64:
    
    25  movq rax,0x7f867a7b6199    ;; object: 0x7f867a7b6199 <true>
    35  movq rcx,0x7f867a7bae71    ;; object: 0x7f867a7bae71 <String[1]: x>
    45  push [rsi+0x2f]
    49  call StoreIC_Initialize  (0x7f8655929ac0)    ;; code: STORE_IC, UNINITIALIZED
    54  movq [rsp],rax
    
    ======== ARM:
    
    32  e59f0054       ldr r0, [pc, #+84]          ;; object: 0xf5b78161 <true>
    36  e59f2054       ldr r2, [pc, #+84]          ;; object: 0xf5b7bc35 <String[1]: x>
    40  e598c017       ldr ip, [r8, #+23]
    44  e52dc004       str ip, [sp, #-4]!
    48  e1a0e00f       mov lr, pc
    52  e59ff048       ldr pc, [pc, #+72]          ;; debug: statement 0
                                                   ;; code: STORE_IC, UNINITIALIZED
    56  e58d0000       str r0, [sp, #+0]
    
    Review URL: http://codereview.chromium.org/305005
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    4dfd4447
Name
Last commit
Last update
..
arm Loading commit data...
ia32 Loading commit data...
third_party Loading commit data...
x64 Loading commit data...
SConscript Loading commit data...
accessors.cc Loading commit data...
accessors.h Loading commit data...
allocation.cc Loading commit data...
allocation.h Loading commit data...
api.cc Loading commit data...
api.h Loading commit data...
apinatives.js Loading commit data...
apiutils.h Loading commit data...
arguments.h Loading commit data...
array.js Loading commit data...
assembler.cc Loading commit data...
assembler.h Loading commit data...
ast.cc Loading commit data...
ast.h Loading commit data...
bootstrapper.cc Loading commit data...
bootstrapper.h Loading commit data...
builtins.cc Loading commit data...
builtins.h Loading commit data...
bytecodes-irregexp.h Loading commit data...
char-predicates-inl.h Loading commit data...
char-predicates.h Loading commit data...
checks.cc Loading commit data...
checks.h Loading commit data...
code-stubs.cc Loading commit data...
code-stubs.h Loading commit data...
code.h Loading commit data...
codegen-inl.h Loading commit data...
codegen.cc Loading commit data...
codegen.h Loading commit data...
compilation-cache.cc Loading commit data...
compilation-cache.h Loading commit data...
compiler.cc Loading commit data...
compiler.h Loading commit data...
contexts.cc Loading commit data...
contexts.h Loading commit data...
conversions-inl.h Loading commit data...
conversions.cc Loading commit data...
conversions.h Loading commit data...
counters.cc Loading commit data...
counters.h Loading commit data...
cpu.h Loading commit data...
d8-debug.cc Loading commit data...
d8-debug.h Loading commit data...
d8-posix.cc Loading commit data...
d8-readline.cc Loading commit data...
d8-windows.cc Loading commit data...
d8.cc Loading commit data...
d8.h Loading commit data...
d8.js Loading commit data...
date-delay.js Loading commit data...
dateparser-inl.h Loading commit data...
dateparser.cc Loading commit data...
dateparser.h Loading commit data...
debug-agent.cc Loading commit data...
debug-agent.h Loading commit data...
debug-delay.js Loading commit data...
debug.cc Loading commit data...
debug.h Loading commit data...
disasm.h Loading commit data...
disassembler.cc Loading commit data...
disassembler.h Loading commit data...
dtoa-config.c Loading commit data...
execution.cc Loading commit data...
execution.h Loading commit data...
factory.cc Loading commit data...
factory.h Loading commit data...
fast-codegen.cc Loading commit data...
fast-codegen.h Loading commit data...
flag-definitions.h Loading commit data...
flags.cc Loading commit data...
flags.h Loading commit data...
frame-element.cc Loading commit data...
frame-element.h Loading commit data...
frames-inl.h Loading commit data...
frames.cc Loading commit data...
frames.h Loading commit data...
func-name-inferrer.cc Loading commit data...
func-name-inferrer.h Loading commit data...
global-handles.cc Loading commit data...
global-handles.h Loading commit data...
globals.h Loading commit data...
handles-inl.h Loading commit data...
handles.cc Loading commit data...
handles.h Loading commit data...
hashmap.cc Loading commit data...
hashmap.h Loading commit data...
heap-inl.h Loading commit data...
heap-profiler.cc Loading commit data...
heap-profiler.h Loading commit data...
heap.cc Loading commit data...
heap.h Loading commit data...
ic-inl.h Loading commit data...
ic.cc Loading commit data...
ic.h Loading commit data...
interpreter-irregexp.cc Loading commit data...
interpreter-irregexp.h Loading commit data...
json-delay.js Loading commit data...
jsregexp.cc Loading commit data...
jsregexp.h Loading commit data...
jump-target-inl.h Loading commit data...
jump-target.cc Loading commit data...
jump-target.h Loading commit data...
list-inl.h Loading commit data...
list.h Loading commit data...
location.h Loading commit data...
log-inl.h Loading commit data...
log-utils.cc Loading commit data...
log-utils.h Loading commit data...
log.cc Loading commit data...
log.h Loading commit data...
macro-assembler.h Loading commit data...
macros.py Loading commit data...
mark-compact.cc Loading commit data...
mark-compact.h Loading commit data...
math.js Loading commit data...
memory.h Loading commit data...
messages.cc Loading commit data...
messages.h Loading commit data...
messages.js Loading commit data...
mirror-delay.js Loading commit data...
mksnapshot.cc Loading commit data...
natives.h Loading commit data...
objects-debug.cc Loading commit data...
objects-inl.h Loading commit data...
objects.cc Loading commit data...
objects.h Loading commit data...
oprofile-agent.cc Loading commit data...
oprofile-agent.h Loading commit data...
parser.cc Loading commit data...
parser.h Loading commit data...
platform-freebsd.cc Loading commit data...
platform-linux.cc Loading commit data...
platform-macos.cc Loading commit data...
platform-nullos.cc Loading commit data...
platform-posix.cc Loading commit data...
platform-win32.cc Loading commit data...
platform.h Loading commit data...
prettyprinter.cc Loading commit data...
prettyprinter.h Loading commit data...
property.cc Loading commit data...
property.h Loading commit data...
regexp-delay.js Loading commit data...
regexp-macro-assembler-irregexp-inl.h Loading commit data...
regexp-macro-assembler-irregexp.cc Loading commit data...
regexp-macro-assembler-irregexp.h Loading commit data...
regexp-macro-assembler-tracer.cc Loading commit data...
regexp-macro-assembler-tracer.h Loading commit data...
regexp-macro-assembler.cc Loading commit data...
regexp-macro-assembler.h Loading commit data...
regexp-stack.cc Loading commit data...
regexp-stack.h Loading commit data...
register-allocator-inl.h Loading commit data...
register-allocator.cc Loading commit data...
register-allocator.h Loading commit data...
rewriter.cc Loading commit data...
rewriter.h Loading commit data...
runtime.cc Loading commit data...
runtime.h Loading commit data...
runtime.js Loading commit data...
scanner.cc Loading commit data...
scanner.h Loading commit data...
scopeinfo.cc Loading commit data...
scopeinfo.h Loading commit data...
scopes.cc Loading commit data...
scopes.h Loading commit data...
serialize.cc Loading commit data...
serialize.h Loading commit data...
shell.h Loading commit data...
smart-pointer.h Loading commit data...
snapshot-common.cc Loading commit data...
snapshot-empty.cc Loading commit data...
snapshot.h Loading commit data...
spaces-inl.h Loading commit data...
spaces.cc Loading commit data...
spaces.h Loading commit data...
string-stream.cc Loading commit data...
string-stream.h Loading commit data...
string.js Loading commit data...
stub-cache.cc Loading commit data...
stub-cache.h Loading commit data...
token.cc Loading commit data...
token.h Loading commit data...
top.cc Loading commit data...
top.h Loading commit data...
unicode-inl.h Loading commit data...
unicode.cc Loading commit data...
unicode.h Loading commit data...
uri.js Loading commit data...
usage-analyzer.cc Loading commit data...
usage-analyzer.h Loading commit data...
utils.cc Loading commit data...
utils.h Loading commit data...
v8-counters.cc Loading commit data...
v8-counters.h Loading commit data...
v8.cc Loading commit data...
v8.h Loading commit data...
v8natives.js Loading commit data...
v8threads.cc Loading commit data...
v8threads.h Loading commit data...
variables.cc Loading commit data...
variables.h Loading commit data...
version.cc Loading commit data...
version.h Loading commit data...
virtual-frame.cc Loading commit data...
virtual-frame.h Loading commit data...
zone-inl.h Loading commit data...
zone.cc Loading commit data...
zone.h Loading commit data...