deanm@chromium.org
6f5368146b
Don't try an indexOf() when the search string is bigger than the string. The current code will spend a bunch of time trying to match, even though we should know a match is impossible.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-19 11:31:02 +00:00
deanm@chromium.org
ab377a3f42
TryFlatten is inlined, while Flatten is not. Make an optimization to avoid the call to Flatten when we're already flat. This gives me 5% on some simple indexOf experiments.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-19 11:06:35 +00:00
sgjesse@chromium.org
cc8fd0e527
Add assembler.h the the Visual Studio project file.
...
Review URL: http://codereview.chromium.org/2985
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-19 10:10:21 +00:00
kasperl@chromium.org
914611056a
Fix lint issues.
...
Review URL: http://codereview.chromium.org/3144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 13:42:39 +00:00
lrn@chromium.org
2816e8a899
Added fast-case for switch statement where all lables are constant Smi's in a limited range (IA32 only so far).
...
Implemented using a jump-table, for constant time lookup.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 11:59:55 +00:00
ager@chromium.org
57e2aa1b26
Use null instead of undefined for deleted elements in code caches.
...
Update the lookup and update code for code caches to deal with deleted
elements.
Do not clear the code cache for the builtins object. If there was a
matching element in the code cache, we would have hit the monomorphic
prototype failure case and removed it.
Review URL: http://codereview.chromium.org/3140
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 11:18:27 +00:00
kasperl@chromium.org
cb4ea56368
Fix ARM build by adding a dummy last_statement_position() accessor
...
to the assembler.
Review URL: http://codereview.chromium.org/2961
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 10:40:25 +00:00
ager@chromium.org
6a3d1868e4
Revert revision 331. The propagation of monomorphic prototype failure
...
information does not work. In certains situations, it will keep
alternating between unrelated monomorphic states instead of going
megamorphic.
Review URL: http://codereview.chromium.org/2959
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 10:22:46 +00:00
sgjesse@chromium.org
d6ae7d4d04
Revert changes to src\assembler-arm.h which slipped into a previous checkin breaking the ARM build.
...
Review URL: http://codereview.chromium.org/2958
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 10:15:17 +00:00
sgjesse@chromium.org
b568d7a17b
Defer the writing of the source position data to the relocation information
...
until a possible debug break location is reached. Currently this is call sites
with calls to code objects and JS return. Source position information in the
code therefore no longer refers to the "first" instruction generated for a
given source position (which was not the case defered code anyway) but to the
first break location after that source position was passed (again defered code
always start with source position information). This doesn't make a difference
for the debugger as it will always be stopped only at debug break locations.
However, this makes the life of the peep-hole optimizer much easier as many
oportunities for posh/pop eliminations where previosly blocked by relocation
information already written to the code object.
Two types of source positions are still collected. Statement positions indicate
the position of the start of the statement leading to this code and (plain)
positions indicate other places typically call sites to help indicate current
position in backtraces. The two different types of positions are also used to
distinguish between step next and step in.
Runs all the tests (including debugger tests) as before.
Moved the checking for the FLAG_debug_info to one place.
I will do the same changes to the ARM codegenerator in a seperate changelist.
Review URL: http://codereview.chromium.org/2957
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 08:51:43 +00:00
kasperl@chromium.org
45cfe562c8
Remove unused codereview.settings file.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 08:29:06 +00:00
whessev8
0d05c71db4
Flush the runtime %DebugPrint output. Should have no performance impact,
...
since %DebugPrint is not often used. Needed for some performance testing
statistics outputting.
Fix the declaration of descriptor enumerated constants to be more readable.
Review URL: http://codereview.chromium.org/3100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 07:31:37 +00:00
ager@chromium.org
950ad34a94
Propagate the information that a monomorphic prototype failure has
...
occured. After a monomorphic prototype failure has been detected,
other monomorphic inline caches for the same type will have a code
object in the map's code cache which is not the current target. We
recognize this case and use the code object that is in the cache
instead of going megamorphic.
Review URL: http://codereview.chromium.org/2928
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 06:55:14 +00:00
kasperl@chromium.org
08e6b7c31f
Update version string and ChangeLog; we're now working on
...
version 0.3.3.
Review URL: http://codereview.chromium.org/3101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 13:56:12 +00:00
sgjesse@chromium.org
390b5cb185
Changed the disassembler formatting
...
Changed the formatting of the comment in the disassembler output to contain
more information on code targets.
Review URL: http://codereview.chromium.org/3099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 12:38:50 +00:00
erik.corry@gmail.com
cd50f9f865
Move the initial code space to be before the young space instead of after it.
...
The old arrangement meant that the alignment requirements of young space were
likely to nullify ASLR.
Review URL: http://codereview.chromium.org/2925
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 10:59:19 +00:00
erik.corry@gmail.com
5312fc05be
The OutOfMemory and OutOfMemoryNested tests set a heap limit that was too low.
...
A change in the way heap was allocated meant that the initial heap size was
sometimes not higher than the limit, which mean that the limit started having
and effect and prevented V8 from booting up.
Fixes http://code.google.com/p/v8/issues/detail?id=25
Review URL: http://codereview.chromium.org/2924
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 10:58:45 +00:00
erik.corry@gmail.com
05597193ce
More thorough tests of sorting integers in lexicographic order.
...
Review URL: http://codereview.chromium.org/2923
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 10:25:05 +00:00
sgjesse@chromium.org
abeb614287
Added missing static to returned buffer.
...
Review URL: http://codereview.chromium.org/3096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 09:05:36 +00:00
iposva@chromium.org
45847bd125
- Rename flags.defs to flag-definitions.h.
...
- Add better support for ignoring files in the presubmit tool.
Review URL: http://codereview.chromium.org/3082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 08:47:50 +00:00
iposva@chromium.org
1409dc5d05
Added presubmit.py to the tools tab for easier access.
...
TBR=mark
Review URL: http://codereview.chromium.org/2892
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 14:37:24 +00:00
ager@chromium.org
a0257ca1a0
Only remove the code object that caused the monomorphic prototype
...
failure instead of clearing the cache. Clearing the cache makes us
miss subsequent monomorphic prototype failures.
Review URL: http://codereview.chromium.org/2889
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 12:41:36 +00:00
kasperl@chromium.org
6b4f5aba96
Fix issue 67 by copying the receiver function one slot
...
down too. Also fix lint issue in codegen-arm.cc.
Reviewed offline by Ivan (iposva@chromium.org ).
Review URL: http://codereview.chromium.org/3080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 11:40:21 +00:00
iposva@chromium.org
88192fc01c
Fix http://code.google.com/p/v8/issues/detail?id=69 :
...
- Simplify the switch statement code generation.
- Ensure that the switch value is always popped from the stack.
Credit goes to Feng for isolating the issue and proposing a fix.
Review URL: http://codereview.chromium.org/2888
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 11:23:02 +00:00
kasperl@chromium.org
725dcfb503
Remove the old builtins framework with the huge, nasty
...
macro.
Review URL: http://codereview.chromium.org/3079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 10:12:32 +00:00
ager@chromium.org
ec5a24dd64
Keep the inline caches for the builtins object monomorphic when
...
libraries are loaded lazily.
Review URL: http://codereview.chromium.org/2885
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 09:21:22 +00:00
kasperl@chromium.org
3f67d5b90f
Stop adapting the arguments passed to the builtin implementations
...
of Array.prototype.push and Array.prototype.pop. Avoid going
through the arguments adaptor trampoline for call ICs that end
up calling a builtin that does not need arguments adaption.
Review URL: http://codereview.chromium.org/2884
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 07:24:46 +00:00
kasperl@chromium.org
64923a6a83
Generalize the Function.prototype.call hooks in the
...
arguments adaptor code to allow builtins to work without
argument adaptor frames. Get rid of unused JavaScript
implementation of call and apply and the associated
code generation hooks.
Review URL: http://codereview.chromium.org/2850
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 15:02:38 +00:00
ager@chromium.org
cf1a6a0bbc
Simplify logic in string-to-double conversion code.
...
Fast case for strings that are definitely not numbers.
Review URL: http://codereview.chromium.org/2847
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 12:17:36 +00:00
sgjesse@chromium.org
1132d818c6
Fixed broken build of mksnapshot on Windows as there was warnings against
...
the use of fopen. Change use of fopen to OS::FOpen to get rid of warning.
Review URL: http://codereview.chromium.org/2846
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 10:57:53 +00:00
deanm@chromium.org
57d29fa44f
Remove EOL trailing whitespace.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 09:24:59 +00:00
deanm@chromium.org
1a0ccbd927
Move the Counters to structures that can be POD initialized, avoiding the need for static constructors on program startup. They were only default initializing and doing some unneeded string operations.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 08:59:31 +00:00
iposva@chromium.org
27e8ffe324
- Add support for building the ARM simulator version of V8 to the Xcode project.
...
- Added new compilation-cache.[cc|h] files.
- Fixed log.cc to be able to build without ENABLE_LOGGING_AND_PROFILING defined.
The next step is to mirror the xcconfigs in a separate change.
Review URL: http://codereview.chromium.org/1948
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 17:25:38 +00:00
deanm@chromium.org
b602106195
The serialization system handles some flag parsing itself, which is a bad idea. For now, update the internal strings, since they will be underbar versions in the new flag system.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 12:17:33 +00:00
deanm@chromium.org
c178664049
Fix some arm related flags with the new flag system.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 11:00:36 +00:00
deanm@chromium.org
f119eb772e
Move a few bits of mksnapshot over to the new flag system.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 10:31:37 +00:00
deanm@chromium.org
77196c5771
This is a new static flag system, designed to have all flags in a central place, and compiled into the binary without requiring static constructors for registration. All flags are moved out of the specific modules and into flags.defs, with different sections for debug, release, etc. The flag variables are always defined. For example, a debug flag in release mode still exists, but is read only and set to the default value.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 10:19:33 +00:00
kmillikin@chromium.org
b5d8866ced
Flexo is tired, but this should perk him up. Single-argument constructors
...
should be marked explicit.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 08:52:22 +00:00
kmillikin@chromium.org
0c4fd55c57
Change the code generator state constructor to implicitly push the state on
...
stack, rather than explicitly saving and restoring it.
Review URL: http://codereview.chromium.org/3002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 08:24:57 +00:00
sgjesse@chromium.org
5e4020ed07
Removed SCons warning flags duplication on Windows. It now uses
...
the same scheme as for gcc on Linux.
Review URL: http://codereview.chromium.org/2424
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 07:08:55 +00:00
iposva@chromium.org
0c936baaab
Satisfy lint!
...
TBR=nobody
Review URL: http://codereview.chromium.org/3001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 04:59:41 +00:00
iposva@chromium.org
ffa7f7bd5b
- Update test status file with fixed tests for ARM and add failing test tracked by issue 67.
...
- Remove debugging aid stop("Generate_ArgumentsAdaptorTrampoline - non-function call")
- Cleanup comment
Review URL: http://codereview.chromium.org/2801
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 04:31:34 +00:00
iposva@chromium.org
c5ee961882
Adapt to new calling convention on ARM:
...
- Simplified frame entry and frame exit code.
- Added ArgumentsAdaptorTrampoline and check for matching argument counts in the InvokePrologue.
- Removed definition and uses of USE_OLD_CALLING_CONVENTIONS.
- Changed MacroAssembler::InvokeBuiltin to match ia32 version.
- Start introducing convenience instructions in the ARM assembler as needed. These instructions take all Register parameters to avoid extra typing of "Operand(reg)".
To keep the architectures in sync these changes have been made to the ia32 files:
- Changed MacroAssembler::EnterFrame(StackFrame::Type type) to MacroAssembler::EnterInternalFrame().
These parts are still missing:
- unimplemented: Builtins::Generate_FunctionApply - large limit
- unimplemented: Builtins::Generate_ArgumentsAdaptorTrampoline - non-function call
- The files have not been lint'd yet.
Review URL: http://codereview.chromium.org/1930
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 03:29:06 +00:00
ager@chromium.org
b6ad53054f
Add back the CCFLAGS to the CXXFLAGS. Leaving them out caused V8 to
...
be build without optimization flags.
Review URL: http://codereview.chromium.org/1947
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 18:46:29 +00:00
christian.plesner.hansen@gmail.com
66b18b9975
Fixed arm disassembler build problems.
...
Fixed lint issue in platform-macos.
Review URL: http://codereview.chromium.org/1941
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 16:41:19 +00:00
kmillikin@chromium.org
4afbecf50e
Fix performace regression due to missed peephole optimization
...
opportunity.
Review URL: http://codereview.chromium.org/2002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 15:16:08 +00:00
christian.plesner.hansen@gmail.com
3764f52a4e
Fixed build problem on mac, lint issues and a test failure on win32.
...
Review URL: http://codereview.chromium.org/2601
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 15:03:22 +00:00
sgjesse@chromium.org
211751f81e
Apply the flags to the SCons environment used to link the library to have the
...
LINKFLAGS take effect. This fixes building shared libraries on 64-bit Linux.
Removed the CCFLAGS from the CXXFLAGS for Linux as SCons combines these
automatically on Linux. This removed the duplication of flags when compiling on
Linux.
On Linux SCons defines CXXCOM as follows
'CXXCOM': '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
whereas on Windows it is
'CXXCOM': '$CXX $CXXFLAGS $CCCOMFLAGS'
Review URL: http://codereview.chromium.org/2422
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 14:39:11 +00:00
christian.plesner.hansen@gmail.com
32cf7fd9a1
Replaced calls to functions that msvc consider deprecated. Used
...
Vector<...> in more places to be sure that buffers have a length
associated with them.
Review URL: http://codereview.chromium.org/1940
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 14:34:48 +00:00
kasperl@chromium.org
1daa61fe2d
Fix issue 65 by making sure not to leak any of the cache
...
tables when doing compilation cache operations.
Review URL: http://codereview.chromium.org/1939
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 13:39:48 +00:00