sgjesse@chromium.org
b0a79ce164
Added some peephole optimizaitions regarding push of immediate followed
...
by pop eax.
Review URL: http://codereview.chromium.org/4212
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 13:31:14 +00:00
deanm@chromium.org
d8eddaa0bd
Enable string pooling in the VS release build. This saves 46k for a v8_shell_sample.exe, I didn't measure performance or the overall change to a Chromium build. I think this option should always make sense anyway, unless we're using some string constants incorrectly.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 12:32:43 +00:00
christian.plesner.hansen@gmail.com
16bfefe012
Fixed lint error.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 12:23:20 +00:00
kasperl@chromium.org
e4a82f2440
Move more functionality from CEntryStub to the helper
...
functions in the macro assembler.
Review URL: http://codereview.chromium.org/4402
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 12:21:54 +00:00
christian.plesner.hansen@gmail.com
6d47b29765
- Added new object type, RegExp, for regular expressions.
...
- Renamed some ::kSizes to ::kHeaderSizes to avoid confusion.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 11:45:43 +00:00
kasperl@chromium.org
88c9fa5d42
Allow platforms (linux and win32) to not force 16-byte alignment
...
of activation frames (needed on Mac OS X).
Review URL: http://codereview.chromium.org/4211
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 10:06:58 +00:00
erik.corry@gmail.com
a9e4a68ef2
Parse /proc/self/maps lines better to handle variations between Linux kernels.
...
It seems noone has had time to file a bug on this.
Review URL: http://codereview.chromium.org/4210
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 08:56:12 +00:00
kasperl@chromium.org
9d30045d06
Refactored the code for entering and leaving exit frames (calls
...
from JavaScript to C++). Includes a few slight optimizations
like keeping argv in a callee-saved register.
Review URL: http://codereview.chromium.org/4035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 08:19:26 +00:00
kasperl@chromium.org
ee7e7be35f
Change the logging information for generated stubs to be
...
consistent with the other log events for generated code.
Review URL: http://codereview.chromium.org/4033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 07:33:08 +00:00
iposva@chromium.org
c2ffa52f09
Remove debugging code that snuck in with the ARM calling convention changes.
...
Thanks to Erik Corry for spotting this.
Review URL: http://codereview.chromium.org/4015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-22 16:00:56 +00:00
kasperl@chromium.org
5a2d74e2b4
Work around issue 80 by splitting strings from the environment
...
variables into lists before appending to them.
Review URL: http://codereview.chromium.org/3185
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-22 15:50:30 +00:00
sgjesse@chromium.org
8391b19b07
Refactor the enum RelocMode changing the naming scheme from lower case to
...
upper case. Moved it into the RelocInfo class together with the associated
is_xxx functions. Renamed is_xxx to IsXxx in the process.
Removed the exit_js_frame mode as it was no longer used.
Patch Set 2 renames RELOC_MODE_COUNT to NUMBER_OF_MODES and fixes a couple of lint errors.
Review URL: http://codereview.chromium.org/3186
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-22 13:57:03 +00:00
deanm@chromium.org
924f7b8491
In release, disable UNREACHABLE and make UNIMPLEMENTED and FATAL simpler, removing the file name and line numbers, so we carry around less data and can share more code.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-22 09:22:18 +00:00
kasperl@chromium.org
8c7550f99a
Add compilation flags for optimizing samples built in release
...
mode. Remove /Ob2 /Oi /Oy from VS build because they are
already enabled by /Ox.
Review URL: http://codereview.chromium.org/4012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-22 08:27:54 +00:00
sgjesse@chromium.org
354deb6fa1
Made the ARM port with simulator build and run on Windows.
...
The reason for the "ugly" definition of SScanF is that the Windows CRT does not have a vsscanf function making it difficult to add OS::SSprintF to platform.h.
Review URL: http://codereview.chromium.org/2988
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-19 12:35:15 +00:00
deanm@chromium.org
dc91b5f368
Avoid the KMP overhead for simple indexOf() operations. Will look into evaluating the best cutoff between a simple search and KMP in the future. This improves some simple operations ~1.5x.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-19 12:30:14 +00:00
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