- 26 Oct, 2009 10 commits
-
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/335027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
When using xor to zero a 64-bit register, generate 32-bit instruction instead. (according to Intel 64-bit mode coding guidelines) previous code for zeroing RAX: xor rax, rax ==> new code for zeroing RAX: xor eax, eax The 32-bit operand form has the same semantics: It also zeroes the upper 32-bit of rax and its encoding uses 1 byte less. Review URL: http://codereview.chromium.org/330018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
of individual changes: - Added infrastructure for custom stub caching. - Push the code object onto the stack in exit calls instead of a debug/non-debug marker. - Remove the DEBUG_EXIT frame type. - Add a new exit stub generator for API getters. Review URL: http://codereview.chromium.org/330017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
I also added more unit tests for literals. Right now, the fast compiler produces code very similar to the existing code generator. We may consider different ways to further compact the generated code for top-level code. ARM always goes through a runtime function to initialize computed properties in an object literal whereas IA32 and x64 use StoreIC. Review URL: http://codereview.chromium.org/316009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Review URL: http://codereview.chromium.org/327008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
As the list of code-stubs is used in two places it is now handled through a macro to keep this in sync. As some code-stubs is only used on ARM the list have been split into two parts to indicate this and get rid of dummy implementation on ia32 and x64 platforms. BUG=484 Review URL: http://codereview.chromium.org/335025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
TBR=sgjesse@chromium.org Review URL: http://codereview.chromium.org/338014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Review URL: http://codereview.chromium.org/330004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
- account code objects in retainers profile; - differentiate between function boilerplates and closures; - simplify code; Review URL: http://codereview.chromium.org/335016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Oct, 2009 7 commits
-
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/326011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Inline assembly is not available in Visual C++ 64-bit version so use RtlCaptureContext to capture execution context. RtlCaptureContext is not available on Windows 2000 so this change removes Windows 2000 support. If this turns up causing trouble we can revert to only use RtlCaptureContext in 64-bit and inline assembly in 32-bit. Review URL: http://codereview.chromium.org/335008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
If we had compiled the comment instead of the code it would have worked. BUG=483 TEST=mjsunit/regress/regress-483.js Review URL: http://codereview.chromium.org/332007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Used the registers to test for failure before loading the result from the stack. Review URL: http://codereview.chromium.org/335006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
in a non-test (ie, value or effect) context. (It is implicitly not in a test context because the code generator does not support expressions in a test context yet.) Compilation is essentially the same as in the optimized code generator. The expression (e0 || e1) is compiled as if it were (let (temp = e0) temp ? temp : e1). On ia32 and x64 a single shared ToBoolean stub is used to convert a value to a flag. The inlined checks assumed by the stub are reordered to compare to undefined (the common case in toplevel code?) first. On ARM a call to the runtime is used. In the interest of code size no checks are yet inlined on ARM. Review URL: http://codereview.chromium.org/334006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kbr@chromium.org authored
This is per resolution in the WebGL working group to make these types match the WebIDL IndexSetter and IndexGetter semantics, which are still being defined but will very likely not throw. Review URL: http://codereview.chromium.org/328007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/303034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Oct, 2009 7 commits
-
-
erik.corry@gmail.com authored
failing (though they could still crash). (Cache the result of the test in the output object, not in the test object which is reused from the prerequisite to the dependent.) Review URL: http://codereview.chromium.org/321001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kbr@chromium.org authored
Review URL: http://codereview.chromium.org/307037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kbr@chromium.org authored
specification under development. This is a follow-on CL to http://codereview.chromium.org/293023 . Based on review feedback, defined the behavior of storing NaN and +/-Infinity into external arrays of integer types as storing 0. Added test cases. Added fucomi instruction to assembler. Fixed bug in KeyedLoadIC::GenerateExternalArray when allocation of HeapNumber failed. Fixed bug in encoding of 16-bit immediate arithmetic instructions in 64-bit port. Removed raising of exceptions for negative array indices passed to external arrays and associated tests. Based on current discussion in WebGL working group, will probably end up removing the exception throwing altogether. Review URL: http://codereview.chromium.org/294022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Add it to the exclusions list in the fuzz-natives test. Review URL: http://codereview.chromium.org/306047 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/306026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
currently compiled the same as with the optimizing compiler: they are cloned from a boilerplate object and the boilerplate objects are lazily constructed. Also changed argument pushing on ARM to use stm (store multiple), which required changing the order of arguments to the runtime functions DeclareGlobals and NewClosure. They were only used from generated code. Finally, changed the toplevel code generator so that stack pops to discard a temporary became addition to the stack pointer on ia32 and x64. Review URL: http://codereview.chromium.org/303021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
For .result = /abc.*/g we generate the following IA-32 code: ... mov ebx,[edi+0x17] mov eax,[ebx+0xb] cmp eax, 0xf5d0e135 ;; object: 0xf5d0e135 <undefined> jnz done push ebx push 0x2 push 0xf5d13805 ;; object: 0xf5d13805 <String[5]: abc.*> push 0xf5d13815 ;; object: 0xf5d13815 <String[1]: g> call RuntimeStub_MaterializeRegExpLiteral done: push eax pop [ebp+0xf4] ... This is very similar to the code previously generated except we do not generate deferred code for the case where we call the runtime. On ARM we use the stm instruction to make pushing the arguments more compact. Review URL: http://codereview.chromium.org/300037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Oct, 2009 10 commits
-
-
peter.rybin@gmail.com authored
Review URL: http://codereview.chromium.org/274080 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
TBR=ager@chromium.org Review URL: http://codereview.chromium.org/293048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
when using snapshots. The alignment of new space has to match the alignment in the snapshot, but the max committed amount of memory does not. For now, we assume that the default semispace size is always used in a snapshot. Review URL: http://codereview.chromium.org/300036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Patch by Steve Block. TBR=ager@chromium.org Review URL: http://codereview.chromium.org/307018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
This is the second change to eliminate reporting >100% VM memory usage. BUG=http://crbug/23623 Review URL: http://codereview.chromium.org/300029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
better for various kinds of strings. Review URL: http://codereview.chromium.org/293027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/313003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
the normal named load IC mechanism for now. Generated code is similar to the case for global variable assignments. Review URL: http://codereview.chromium.org/294021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
http://codereview.chromium.org/197037/showwhesse@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Adding calls to global functions to the new compiler. Review URL: http://codereview.chromium.org/302002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Oct, 2009 6 commits
-
-
mikhail.naganov@gmail.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kbr@chromium.org authored
missed case statements for heap verification and printing needed by http://codereview.chromium.org/293023 . tbr=plesner Review URL: http://codereview.chromium.org/308004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kbr@chromium.org authored
specification under development. The optimizations are patterned after those previously done for CanvasPixelArray. This CL adds all of the necessary framework but continues to use the generic KeyedLoadIC and KeyedStoreIC code, to create a baseline for benchmarking purposes. The next CL will add the optimized ICs to ic-ia32.cc and ic-x64.cc. These new CanvasArray types have different semantics than CanvasPixelArray; out-of-range values are clamped via C cast semantics, which is cheaper than the clamping behavior specified by CanvasPixelArray. Out-of-range indices raise exceptions instead of being silently ignored. As part of this work, pulled FloatingPointHelper::AllocateHeapNumber up to MacroAssembler on ia32 and x64 platforms. Slightly refactored KeyedLoadIC and KeyedStoreIC. Fixed encoding for fistp_d on x64 and added a few more instructions that are needed for the new ICs. The test cases in test-api.cc have been verified by hand to exercise all of the generated code paths in the forthcoming specialized ICs. Review URL: http://codereview.chromium.org/293023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
sgjesse@chromium.org authored
The check for arguments in registers in one of the three versions of GenericBinaryOpStub::GenerateCall was plain wrong. BUG=475 TEST=mjsunit/regress/regress-475.js Review URL: http://codereview.chromium.org/307002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
fast-mode compiler. Support was already present, but disabled. Review URL: http://codereview.chromium.org/295004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-