• 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
..
bugs Loading commit data...
compiler Loading commit data...
regress Loading commit data...
third_party Loading commit data...
tools Loading commit data...
api-call-after-bypassed-exception.js Loading commit data...
apply.js Loading commit data...
arguments-apply.js Loading commit data...
arguments-call-apply.js Loading commit data...
arguments-enum.js Loading commit data...
arguments-indirect.js Loading commit data...
arguments-lazy.js Loading commit data...
arguments-opt.js Loading commit data...
arguments.js Loading commit data...
array-concat.js Loading commit data...
array-constructor.js Loading commit data...
array-functions-prototype.js Loading commit data...
array-indexing.js Loading commit data...
array-iteration.js Loading commit data...
array-join.js Loading commit data...
array-length-number-conversion.js Loading commit data...
array-length.js Loading commit data...
array-reduce.js Loading commit data...
array-sort.js Loading commit data...
array-splice.js Loading commit data...
ascii-regexp-subject.js Loading commit data...
big-array-literal.js Loading commit data...
big-object-literal.js Loading commit data...
binary-operation-overwrite.js Loading commit data...
body-not-visible.js Loading commit data...
call-non-function-call.js Loading commit data...
call-non-function.js Loading commit data...
call.js Loading commit data...
char-escape.js Loading commit data...
class-of-builtins.js Loading commit data...
closure.js Loading commit data...
codegen-coverage.js Loading commit data...
compare-nan.js Loading commit data...
const-declaration.js Loading commit data...
const-eval-init.js Loading commit data...
const-redecl.js Loading commit data...
const.js Loading commit data...
constant-folding.js Loading commit data...
context-variable-assignments.js Loading commit data...
cyclic-array-to-string.js Loading commit data...
d8-os.js Loading commit data...
date-parse.js Loading commit data...
date.js Loading commit data...
debug-backtrace-text.js Loading commit data...
debug-backtrace.js Loading commit data...
debug-breakpoints.js Loading commit data...
debug-changebreakpoint.js Loading commit data...
debug-clearbreakpoint.js Loading commit data...
debug-clearbreakpointgroup.js Loading commit data...
debug-compile-event.js Loading commit data...
debug-conditional-breakpoints.js Loading commit data...
debug-constructed-by.js Loading commit data...
debug-constructor.js Loading commit data...
debug-continue.js Loading commit data...
debug-enable-disable-breakpoints.js Loading commit data...
debug-evaluate-arguments.js Loading commit data...
debug-evaluate-bool-constructor.js Loading commit data...
debug-evaluate-locals.js Loading commit data...
debug-evaluate-recursive.js Loading commit data...
debug-evaluate-with.js Loading commit data...
debug-evaluate.js Loading commit data...
debug-event-listener.js Loading commit data...
debug-handle.js Loading commit data...
debug-ignore-breakpoints.js Loading commit data...
debug-mirror-cache.js Loading commit data...
debug-multiple-breakpoints.js Loading commit data...
debug-referenced-by.js Loading commit data...
debug-references.js Loading commit data...
debug-scopes.js Loading commit data...
debug-script-breakpoints.js Loading commit data...
debug-script.js Loading commit data...
debug-scripts-request.js Loading commit data...
debug-setbreakpoint.js Loading commit data...
debug-sourceinfo.js Loading commit data...
debug-sourceslice.js Loading commit data...
debug-step-stub-callfunction.js Loading commit data...
debug-step.js Loading commit data...
debug-stepin-accessor.js Loading commit data...
debug-stepin-builtin.js Loading commit data...
debug-stepin-call-function-stub.js Loading commit data...
debug-stepin-constructor.js Loading commit data...
debug-stepin-function-call.js Loading commit data...
debug-stepout-recursive-function.js Loading commit data...
debug-stepout-to-builtin.js Loading commit data...
debug-suspend.js Loading commit data...
declare-locally.js Loading commit data...
deep-recursion.js Loading commit data...
delay-syntax-error.js Loading commit data...
delete-global-properties.js Loading commit data...
delete-in-eval.js Loading commit data...
delete-in-with.js Loading commit data...
delete-vars-from-eval.js Loading commit data...
delete.js Loading commit data...
div-mod.js Loading commit data...
do-not-strip-fc.js Loading commit data...
dont-enum-array-holes.js Loading commit data...
dont-reinit-global-var.js Loading commit data...
double-equals.js Loading commit data...
dtoa.js Loading commit data...
enumeration-order.js Loading commit data...
error-constructors.js Loading commit data...
escape.js Loading commit data...
eval-enclosing-function-name.js Loading commit data...
eval-typeof-non-existing.js Loading commit data...
eval.js Loading commit data...
execScript-case-insensitive.js Loading commit data...
extra-arguments.js Loading commit data...
extra-commas.js Loading commit data...
for-in-null-or-undefined.js Loading commit data...
for-in-special-cases.js Loading commit data...
for-in.js Loading commit data...
fun-as-prototype.js Loading commit data...
fun-name.js Loading commit data...
function-arguments-null.js Loading commit data...
function-caller.js Loading commit data...
function-names.js Loading commit data...
function-property.js Loading commit data...
function-prototype.js Loading commit data...
function-source.js Loading commit data...
function.js Loading commit data...
fuzz-accessors.js Loading commit data...
fuzz-natives.js Loading commit data...
getter-in-prototype.js Loading commit data...
getter-in-value-prototype.js Loading commit data...
global-const-var-conflicts.js Loading commit data...
global-deleted-property-ic.js Loading commit data...
global-deleted-property-keyed.js Loading commit data...
global-ic.js Loading commit data...
global-load-from-eval-in-with.js Loading commit data...
global-load-from-eval.js Loading commit data...
global-load-from-nested-eval.js Loading commit data...
global-vars-eval.js Loading commit data...
global-vars-with.js Loading commit data...
greedy.js Loading commit data...
has-own-property.js Loading commit data...
html-comments.js Loading commit data...
html-string-funcs.js Loading commit data...
if-in-undefined.js Loading commit data...
in.js Loading commit data...
indexed-accessors.js Loading commit data...
instanceof.js Loading commit data...
integer-to-string.js Loading commit data...
invalid-lhs.js Loading commit data...
invalid-source-element.js Loading commit data...
json.js Loading commit data...
keyed-ic.js Loading commit data...
keyed-storage-extend.js Loading commit data...
large-object-allocation.js Loading commit data...
large-object-literal.js Loading commit data...
lazy-load.js Loading commit data...
leakcheck.js Loading commit data...
length.js Loading commit data...
local-load-from-eval.js Loading commit data...
math-min-max.js Loading commit data...
megamorphic-callbacks.js Loading commit data...
mirror-array.js Loading commit data...
mirror-boolean.js Loading commit data...
mirror-date.js Loading commit data...
mirror-error.js Loading commit data...
mirror-function.js Loading commit data...
mirror-null.js Loading commit data...
mirror-number.js Loading commit data...
mirror-object.js Loading commit data...
mirror-regexp.js Loading commit data...
mirror-script.js Loading commit data...
mirror-string.js Loading commit data...
mirror-undefined.js Loading commit data...
mirror-unresolved-function.js Loading commit data...
mjsunit.js Loading commit data...
mjsunit.status Loading commit data...
mul-exhaustive.js Loading commit data...
multiple-return.js Loading commit data...
negate-zero.js Loading commit data...
negate.js Loading commit data...
new.js Loading commit data...
newline-in-string.js Loading commit data...
no-branch-elimination.js Loading commit data...
no-octal-constants-above-256.js Loading commit data...
no-semicolon.js Loading commit data...
non-ascii-replace.js Loading commit data...
nul-characters.js Loading commit data...
number-limits.js Loading commit data...
number-string-index-call.js Loading commit data...
number-tostring-small.js Loading commit data...
number-tostring.js Loading commit data...
obj-construct.js Loading commit data...
object-literal-gc.js Loading commit data...
object-literal.js Loading commit data...
override-read-only-property.js Loading commit data...
parse-int-float.js Loading commit data...
property-load-across-eval.js Loading commit data...
property-object-key.js Loading commit data...
proto.js Loading commit data...
prototype.js Loading commit data...
receiver-in-with-calls.js Loading commit data...
regexp-UC16.js Loading commit data...
regexp-call-as-function.js Loading commit data...
regexp-capture.js Loading commit data...
regexp-captures.js Loading commit data...
regexp-indexof.js Loading commit data...
regexp-lookahead.js Loading commit data...
regexp-loop-capture.js Loading commit data...
regexp-multiline-stack-trace.js Loading commit data...
regexp-multiline.js Loading commit data...
regexp-standalones.js Loading commit data...
regexp-static.js Loading commit data...
regexp-string-methods.js Loading commit data...
regexp.js Loading commit data...
scanner.js Loading commit data...
short-circuit-boolean.js Loading commit data...
simple-constructor.js Loading commit data...
sin-cos.js Loading commit data...
smi-negative-zero.js Loading commit data...
smi-ops.js Loading commit data...
sparse-array-reverse.js Loading commit data...
sparse-array.js Loading commit data...
stack-traces.js Loading commit data...
str-to-num.js Loading commit data...
stress-array-push.js Loading commit data...
strict-equals.js Loading commit data...
string-add.js Loading commit data...
string-case.js Loading commit data...
string-charat.js Loading commit data...
string-charcodeat.js Loading commit data...
string-compare-alignment.js Loading commit data...
string-flatten.js Loading commit data...
string-index.js Loading commit data...
string-indexof.js Loading commit data...
string-lastindexof.js Loading commit data...
string-localecompare.js Loading commit data...
string-match.js Loading commit data...
string-replace-gc.js Loading commit data...
string-replace.js Loading commit data...
string-search.js Loading commit data...
string-split.js Loading commit data...
substr.js Loading commit data...
switch.js Loading commit data...
testcfg.py Loading commit data...
this-in-callbacks.js Loading commit data...
this.js Loading commit data...
throw-and-catch-function.js Loading commit data...
throw-exception-for-null-access.js Loading commit data...
to-precision.js Loading commit data...
to_number_order.js Loading commit data...
tobool.js Loading commit data...
toint32.js Loading commit data...
top-level-assignments.js Loading commit data...
touint32.js Loading commit data...
transcendentals.js Loading commit data...
try-catch-extension-object.js Loading commit data...
try-catch-scopes.js Loading commit data...
try-finally-nested.js Loading commit data...
try.js Loading commit data...
undeletable-functions.js Loading commit data...
unicode-string-to-number.js Loading commit data...
unicode-test.js Loading commit data...
unusual-constructor.js Loading commit data...
uri.js Loading commit data...
value-callic-prototype-change.js Loading commit data...
var.js Loading commit data...
with-function-expression.js Loading commit data...
with-leave.js Loading commit data...
with-parameter-access.js Loading commit data...
with-prototype.js Loading commit data...
with-value.js Loading commit data...