aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-01-17Optimize creation of tuplesBjörn Gustavsson
Combine the put_tuple/2 and all following put/1 instructions to one i_put_tuple/2 instruction. In general, that will reduce the number of instruction words by 50 percent. Measurements seem to indicate that the speed is about the same.
2011-01-17beam_makeops: Support jumping to common code from an instruction macroBjörn Gustavsson
2011-01-17beam_load: Run the packing engine before loading list argumentsBjörn Gustavsson
2011-01-17Allow packing of some more instructionsBjörn Gustavsson
2011-01-17Support packing of the 'I' type in a 64-bit emulatorBjörn Gustavsson
In many (not all) cases, the value for the 'I' type will fit into 32 bits.
2011-01-17beam_makeops: Refactor packing code to facilitate extensionsBjörn Gustavsson
We don't want the packable types listed in two places.
2011-01-17Eliminate redundant jump instructionsBjörn Gustavsson
2011-01-17Eliminate the special instructions for selecting floats and bignumsBjörn Gustavsson
2011-01-17Add test for non-matching big numberBjörn Gustavsson
2011-01-17BEAM loader: Introduce a new move2_xxxx instructionBjörn Gustavsson
2011-01-17BEAM loader: Pack more instructions using a new 'Q' typeBjörn Gustavsson
Introduce a new 'Q' type, similar to 'P' except that it can be packed.
2011-01-17If the wordsize is 64 bits, pack up to 4 operands into a wordBjörn Gustavsson
In the 32-bit BEAM emulator, it is only possible to pack 3 register operands into one word. Therefore, the move2 instruction (that has 4 operands) needs two words for its operands. Take advantage of the larger wordsize in the 64-bit emulator and pack up to 4 operands into a single word.
2011-01-17Pass the external word size to the beam_makeops scriptBjörn Gustavsson
Giving the beam_makeops script access to the external word size (=the size of instruction words) will allow it to pack more operands into a word for the 64 bits emulator.
2011-01-17BEAM loader: Combine is_type/1 and is_eq/1 instructionsBjörn Gustavsson
In the transformation engine in the loader, an is_eq/1 instruction is currently always preceded by an is_type/1 instruction. Therefore, save a word and slight amount of time by combining those instructions into an is_type_eq/2 instruction.
2011-01-17BEAM loader: Omit type tests for instructions that don't need themBjörn Gustavsson
2011-01-17beam_debug: Fix dissambly of some variable-operand instructionsBjörn Gustavsson
The i_jump_on_val_zero/3 and i_select_tuple_arity/3 instructions were not disassembled correctly.
2011-01-17beam_debug: Change one occurrence of "X[0]" to "x[0]" for consistencyBjörn Gustavsson
2011-01-17beam_makeops: Allow -pack and -nonext to be combinedBjörn Gustavsson
2011-01-17beam_makeops: Relax requirements for having specific instructionsBjörn Gustavsson
2011-01-17BEAM loader: Fix bug in handling of "rest" argumentsBjörn Gustavsson
It would only really work in simple case like: select_val S=q Fail=f Size=u Rest=* => ... where all operands for a single instruction where bound to variables, and not for more complicated cases such as: i_put_tuple Dst Arity Puts=* | put PutSrc => ...
2011-01-17Remove the last vestiges of the allocating fmove/2 instructionBjörn Gustavsson
There was a version of the BEAM loader and emulator that had two versions of the fmove/2 instruction, one version that allocated heap space internally and a newer version that assumed that a previous test_heap/2 instruction had already allocated the heap space. Though the allocating fmove/2 instruction is no longer supported, some vestiges of it still remains.
2011-01-17Makefile.in: Add dependency for files generated by util/beam_makeopsBjörn Gustavsson
2011-01-17Add utils/count for counting the static instruction frequencyBjörn Gustavsson
2011-01-17Add erts_debug:instructions/0 for listing all specific instructionsBjörn Gustavsson
erts_debug:instructions/0 is useful for finding which specific instructions that are not used at all.
2010-12-08Update version numbersBjörn-Egil Dahlberg
2010-12-07Merge branch 'pan/doc-md-panic-fix' into devOTP_R14B01Patrik Nyblom
* pan/doc-md-panic-fix: Workaround for ampersands in INSTALL-WIN32.md
2010-12-07Workaround for ampersands in INSTALL-WIN32.mdPatrik Nyblom
2010-12-06Prepare releaseErlang/OTP
2010-12-06Merge branch 'mc/dialyzer-doc' into devNiclas Axelsson
* mc/dialyzer-doc: dialyzer: Update documentation
2010-12-06dialyzer: Update documentationMaria Christakis
2010-12-06Merge branch 'rickard/rwmutex-bug/OTP-8925' into devRickard Green
* rickard/rwmutex-bug/OTP-8925: Fix erroneous assertion
2010-12-06Fix erroneous assertionRickard Green
2010-12-03Merge branch 'sverker/ets_compress/OTP-8922' into devSverker Eriksson
* sverker/ets_compress/OTP-8922: Fix ets_SUITE:types to not fail due to false mem leaks
2010-12-03Fix ets_SUITE:types to not fail due to false mem leaksSverker Eriksson
Waiting for table sys_dist to stablize after slave node has been stopped.
2010-12-03Merge branch 'pan/inet6_corrections/OTP-8969' into devRaimo Niskanen
* pan/inet6_corrections/OTP-8969: Stop using uncertain flags for getaddrinfo() Teach inet_test_lib to understand enetunreach Make windows inet_gethost work for ipv6
2010-12-03Update preloaded modulesPatrik Nyblom
2010-12-03Update primary bootstrapPatrik Nyblom
2010-12-03Merge branch 'ks/erl_bif_types-cleanup/OTP-8961' into devPatrik Nyblom
* ks/erl_bif_types-cleanup/OTP-8961: Fix type information of 'file' and 'code' modules Conflicts: lib/hipe/cerl/erl_bif_types.erl
2010-12-03Merge branch 'pan/unicode-filenames/OTP-8887' into devPatrik Nyblom
* pan/unicode-filenames/OTP-8887: (27 commits) Test and correct filelib and filename Add documentation to erlang.xml and slight correction to unicode_usage.xml Add section about Unicode file names to stdlib users guide Correct bug in file_name_SUITE making it fail on Unix instead of Windows7 Add documentation about raw filenames and Unicode file name translation mode Make filelib not crash on re codepoints beyond 255 in re when filename is raw Mend on_load_embedded testcase which did not handle windows links Correct testcase regarding windows versions supporting soft links. Teach filelib to use re in unicode mode when filenames are not raw Treat soft links on Windows correctly in file_name_SUITE Adapt new soft and hard link routines on Windos to Unicode Corrected testcases broken by unicode filenames Update preloaded prim_file Teach prim_file not to accept atoms and not to throw exceptions Adapt inet_drv to Visual Studio 2008 Teach spawn_executable about Unicode Convert filenames read on MacOSX to canonical form Teach file to accept codepoints beyond 255. Add testcases Correct shell utilities to handle unicode and possibly binaries ...
2010-12-03Merge branch 'lukas/common_test/extend_timeout_for_win' into devLukas Larsson
* lukas/common_test/extend_timeout_for_win: Update the support init_per_suite to extend the timeout for starting a slave node on windows.
2010-12-03Test and correct filelib and filenamePatrik Nyblom
2010-12-03Merge branch 'lukas/common_test/parallel_group_tc_fix/OTP-8921' into devLukas Larsson
* lukas/common_test/parallel_group_tc_fix/OTP-8921: Fix bug in verification where a tc_done/start event which was generated inbetween a tc_start and tc_done of a init_per_group could caused the validation to fail
2010-12-03Fix bug in verification where a tc_done/start event which was generated ↵Lukas Larsson
inbetween a tc_start and tc_done of a init_per_group could caused the validation to fail
2010-12-03Merge branch 'rickard/rwmutex-bug/OTP-8925' into devRickard Green
* rickard/rwmutex-bug/OTP-8925: Use correct argument types on rwlock_wake_set_flags()
2010-12-03Add documentation to erlang.xml and slight correction to unicode_usage.xmlPatrik Nyblom
2010-12-03Update the support init_per_suite to extend the timeout for starting a slave ↵Lukas Larsson
node on windows.
2010-12-03Merge branch 'dc/update-INSTALL-WIN32.md' into devBjörn Gustavsson
* dc/update-INSTALL-WIN32.md: Doc update to latest dependencies & how to compile with free VS2008 Express
2010-12-02Update primary bootstrapBjörn Gustavsson
2010-12-02Merge branch 'bjorn/fix-compiler-bugs/OTP-8949' into devBjörn Gustavsson
* bjorn/fix-compiler-bugs/OTP-8949: beam_utils: Fix check_liveness/3 for receive loops beam_utils: Fix liveness analysis for gc_bif instructions
2010-12-02Merge branch 'raimo/windows-file-append-testcase' into devRaimo Niskanen
* raimo/windows-file-append-testcase: Run KERNEL file_SUITE:large_file on more platforms Add test case for append to file > 4 GB