- 15 Oct, 2009 5 commits
-
-
kmillikin@chromium.org authored
true at the top level we generate: 0 stmdb sp!, {r1, r8, fp, lr} 4 add fp, sp, #8 8 ldr ip, [r10, #+4] 12 ldr r2, [r10, #+0] 16 str ip, [sp, #-4]! 20 add lr, pc, #4 24 cmp sp, r2 28 ldrcc pc, [pc, #+68] ;; code: STUB, StackCheck, minor: 0 32 ldr ip, [pc, #+68] ;; object: 0xf5bc4161 <true> 36 str ip, [sp, #-4]! 40 ldr ip, [sp, #+0] 44 str ip, [fp, #-12] 48 add sp, sp, #4 52 ldr ip, [fp, #-12] 56 str ip, [sp, #-4]! 60 ldr r0, [sp], #+4 64 mov sp, fp ;; js return 68 ldmia sp!, {fp, lr} 72 add sp, sp, #4 76 bx lr 80 ldr r0, [r10, #+4] 84 mov sp, fp ;; js return 88 ldmia sp!, {fp, lr} 92 add sp, sp, #4 96 bx lr 100 constant pool begin 104 constant 108 constant Review URL: http://codereview.chromium.org/264067 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Fix X64 build in the case that debugger support is disabled. Change function name from IsCallInstruction to IsPatchedReturnSequence on all platforms. Review URL: http://codereview.chromium.org/267116 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
top-level code we generate: 0 push rbp 1 movq rbp,rsp 4 push rsi 5 push rdi 6 push [r13+0x8] 10 cmpq rsp,[r13+0x0] 14 jnc 25 (0x7ff2c378ff19) 20 call 0x7ff2c377d260 ;; code: STUB, StackCheck, minor: 0 25 movq r10,0x7ff2e8608199 ;; object: 0x7ff2e8608199 <true> 35 push r10 37 movq rax,[rsp] 41 movq [rbp-0x18],rax 45 pop rax 46 push [rbp-0x18] 50 pop rax 51 movq rsp,rbp ;; js return 54 pop rbp 55 ret 0x8 58 int3 59 int3 60 int3 61 int3 62 int3 63 int3 64 movq rax,[r13+0x8] 68 movq rsp,rbp ;; js return 71 pop rbp 72 ret 0x8 75 int3 76 int3 77 int3 78 int3 79 int3 80 int3 Review URL: http://codereview.chromium.org/264066 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
line. This is to make it easier to add and remove sources without having to reformat line breaks. It also enables sorting with M-x sort-lines (in emacs) or the like. Review URL: http://codereview.chromium.org/276042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Turned on with '--log-producers' flag, also needs '--noinline-new' (this is temporarily), '--log-code', '--log-gc'. Not all allocations are traced (I'm investigating.) Stacks are stored using weak handles. Thus, when an object is collected, its allocation stack is deleted. Review URL: http://codereview.chromium.org/267077 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Oct, 2009 10 commits
-
-
kmillikin@chromium.org authored
TBR=iposva@chromium.org Review URL: http://codereview.chromium.org/275020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
fast code generator is optimized for compilation time and code size. Currently it is only implemented on IA32. It is potentially triggered for any code in the global scope (including code eval'd in the global scope). It performs a syntactic check and chooses to compile in fast mode if the AST contains only supported constructs and matches some other constraints. Initially supported constructs are * ExpressionStatement, * ReturnStatement, * VariableProxy (variable references) to parameters and stack-allocated locals, * Assignment with lhs a parameter or stack-allocated local, and * Literal This allows compilation of literals at the top level and not much else. All intermediate values are allocated to temporaries and the stack is used for all temporaries. The extra memory traffic is a known issue. The code generated for 'true' is: 0 push ebp 1 mov ebp,esp 3 push esi 4 push edi 5 push 0xf5cca135 ;; object: 0xf5cca135 <undefined> 10 cmp esp,[0x8277efc] 16 jnc 27 (0xf5cbbb1b) 22 call 0xf5cac960 ;; code: STUB, StackCheck, minor: 0 27 push 0xf5cca161 ;; object: 0xf5cca161 <true> 32 mov eax,[esp] 35 mov [ebp+0xf4],eax 38 pop eax 39 mov eax,[ebp+0xf4] 42 mov esp,ebp ;; js return 44 pop ebp 45 ret 0x4 48 mov eax,0xf5cca135 ;; object: 0xf5cca135 <undefined> 53 mov esp,ebp ;; js return 55 pop ebp 56 ret 0x4 Review URL: http://codereview.chromium.org/273050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
iposva@chromium.org authored
This is the first step to address http://crbug.com/23131 by creating a series of V8 ConsStrings as more data arrives from the server. Review URL: http://codereview.chromium.org/271085 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/267092 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Do not create handles for values of internal fields---this operation is performance critical and plain pointers are safe. Appy the same approach to External wrapping and unwrapping. Plus some minor refactorings. Review URL: http://codereview.chromium.org/270085 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/276018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Hidden properties are used like internal fields which do not have access checks. The checks can cause problems because there may be no current context. See http://crbug.com/24200. Review URL: http://codereview.chromium.org/271080 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
are in a separate subdirectory called 'compiler' in the mjsunit directory. Review URL: http://codereview.chromium.org/273039 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Patch by Jan de Mooij <jandemooij@gmail.com> Review at http://codereview.chromium.org/271072 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/275016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Oct, 2009 7 commits
-
-
mikhail.naganov@gmail.com authored
TBR=ager@chromium.org Review URL: http://codereview.chromium.org/272045 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
Check that constructor is a FunctionMirror before calling .name(), otherwise we may end up calling name method on a mirror object that doesn't have it. Review URL: http://codereview.chromium.org/271053 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Increase stack space on Win64 sample and cctest executables. Review URL: http://codereview.chromium.org/264047 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
contains_array_literal_ implies materialized_literal_count_ > 0, and we appear not to need to know about array literals specifically. Review URL: http://codereview.chromium.org/272043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
__ARM_EABI__ macro to determine the ABI on ARM. Review URL: http://codereview.chromium.org/274016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/273033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Based on a recent patch for Webkit. trim is defined in ES 5 section 15.5.4.20. Author: Jan de Mooij <jandemooij@gmail.com> git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Oct, 2009 6 commits
-
-
kmillikin@chromium.org authored
implementation is not yet complete (it prints only the node name for some AST constructs) and does not serialize everything needed to reconstitute the AST. It is motivated by a desire to prototype source-to-source transformations in JavaScript itself (or anything else that can grok JSON), but it should have other uses too. Feedback is welcome. Review URL: http://codereview.chromium.org/131101 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Review URL: http://codereview.chromium.org/267050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/264033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
while, and for loops. Previously they were distinguished by a type field, which required runtime asserts to avoid invalid nodes (since not all loop types have the same internal structure). Now they C++ type system is used to require well-formed loop ASTs. Because they do not share compilation code, we had very large functions in the code generators that merely did a runtime dispatch to a specific implementation based on the type. Review URL: http://codereview.chromium.org/269049 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/269050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/267049 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Oct, 2009 1 commit
-
-
iposva@chromium.org authored
Review URL: http://codereview.chromium.org/268030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Oct, 2009 2 commits
-
-
peter.rybin@gmail.com authored
Review URL: http://codereview.chromium.org/243036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/272007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Oct, 2009 9 commits
-
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/268016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
The calls to GenericBinaryStub can now pass the arguments in registers instead of on the stack. It is supported for ADD, SUB, MUL and DIV. The convention in GenericBinaryStub is not changed so the left operand is passed in edx and the right one in eax. When the stub contains smi code arguments are always passed on the stack as the smi code has to have left and right operands on eax and ebx, so moving from edx,eax to eax,ebx is not worth it and the smi code also trashes the registers so if arguments where passed in registers they would have to be saved on the stack anyway. Added flags to disable the use of certain Intel CPU features to make it easier to test different code paths. Review URL: http://codereview.chromium.org/246075 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/266014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
And fix bug in debug-mode of 32-bit smi. Review URL: http://codereview.chromium.org/261024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Review URL: http://codereview.chromium.org/251100 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/196139 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
--debug-code so it is not normally compiled in debug builds. Review URL: http://codereview.chromium.org/268014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
TBR=lrn@chromium.org Review URL: http://codereview.chromium.org/261023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/266004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-