aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
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.
2011-01-13Merge branch 'pan/fortify-source-gcc-4.5' into devPatrik Nyblom
* pan/fortify-source-gcc-4.5: Remove strange name field in efile_drv.c as it upsets -D_FORTIFY_SOURCE OTP-9025
2011-01-13Fix assymetric (Un)UseTmpHeap in erl_process.cPatrik Nyblom
Also added ASSERTion in beam_emu.c that the tmp-heap-counter in 0.
2011-01-12Remove strange name field in efile_drv.c as it upsets -D_FORTIFY_SOURCEPatrik Nyblom
2011-01-11Remove special treatment of EADDRINUSEPatrik Nyblom
2011-01-11check return value of epmd server listen() callSteve Vinoski
The listen() call can fail due to a variety of conditions, so check its return value and if it fails, print a suitable debug message if appropriate and then exit. The exit values used are the same for those already used for bind() failures: 0 if the error is EADDRINUSE, 1 otherwise.
2011-01-05Fix minor typos in erl_nif documentationSverker Eriksson
enif_realloc_binary return int enif_alloc/enif_free does not accept env as first argument. enif_send return int enif_self in alphabetic order
2010-12-29Merge branch 'egil/timer-wheel-min-time/OTP-8990' into devBjörn-Egil Dahlberg
* egil/timer-wheel-min-time/OTP-8990: Teach timer-wheel slots to use double linked lists Remove timer-thread implementation Refactor timer interface Teach timer-wheel to keep min time
2010-12-29Teach timer-wheel slots to use double linked listsBjörn-Egil Dahlberg
Conflicts: erts/emulator/beam/erl_time.h
2010-12-21Merge branch 'bjorn/bs-zero-width-bug/OTP-8997' into devBjörn Gustavsson
* bjorn/bs-zero-width-bug/OTP-8997: Fix type-checking of variable used in zero-width bit syntax construction
2010-12-21Fix type-checking of variable used in zero-width bit syntax constructionBjörn Gustavsson
<<A:0>> will always produce an empty binary, regardless of the type of A. The bug is in the run-time system. Fix it so that a non-numeric value for A will cause a badarg exception. Reported-by: Zvi
2010-12-20Remove timer-thread implementationBjörn-Egil Dahlberg
2010-12-20Refactor timer interfaceBjörn-Egil Dahlberg
2010-12-20Teach timer-wheel to keep min timeBjörn-Egil Dahlberg
Increases the speed of the timer-wheel
2010-12-20Merge branch 'pan/r14b01-file-driver-fix' into devPatrik Nyblom
* pan/r14b01-file-driver-fix: Correct usage of pointer-to-size in unix_efile
2010-12-20Merge branch 'pan/bad-dist-msg/OTP-8993' into devPatrik Nyblom
* pan/bad-dist-msg/OTP-8993: Remove ancient distribution message DOP_NODE_LINK from all code Teach VM not to dump core on bad dist message structure
2010-12-20Merge branch 'pan/werl-scrollwheel/OTP-8985' into devPatrik Nyblom
* pan/werl-scrollwheel/OTP-8985: Teach win_con.c about scroll wheels
2010-12-17Correct usage of pointer-to-size in unix_efilePatrik Nyblom
2010-12-17Merge branch 'raimo/getifaddrs_ifa_addr_NULL/OTP-8996' into devRaimo Niskanen
* raimo/getifaddrs_ifa_addr_NULL/OTP-8996: Fix segfault for NULL return value fields from getifaddrs()
2010-12-17Merge branch 'rickard/exit/2-refc/OTP-9005' into devRickard Green
* rickard/exit/2-refc/OTP-9005: Decrement refc after unlock in exit/2
2010-12-17Decrement refc after unlock in exit/2Rickard Green
2010-12-17Fix missed change of aux_work typeRickard Green
2010-12-17Merge branch 'rickard/fix-warnings/R14B02' into devRickard Green
* rickard/fix-warnings/R14B02: Remove unused variable Remove stray semicolons in erl_term.h
2010-12-17Merge branch 'rickard/ets-no-write-refc/OTP-9000' into devRickard Green
* rickard/ets-no-write-refc/OTP-9000: Stop using reference counter when write accessing ETS-tables Conflicts: erts/emulator/beam/erl_db.c
2010-12-17Merge branch 'rickard/ets-tab-delete/OTP-8999' into devRickard Green
* rickard/ets-tab-delete/OTP-8999: Safe deallocation of ETS-table structures Fix rwlock resource leak when hitting system limit Conflicts: erts/emulator/beam/erl_process.h erts/emulator/beam/erl_process.c
2010-12-16Merge branch 'rickard/atomic-type/OTP-8974' into devRickard Green
* rickard/atomic-type/OTP-8974: Unbreak atomic fallback
2010-12-16Unbreak atomic fallbackRickard Green
2010-12-16Merge branch 'rickard/atomic-type/OTP-8974' into devRickard Green
* rickard/atomic-type/OTP-8974: Use 32-bit atomics for system block Use 32-bit atomics for misc scheduling specific information Use 32-bit atomic for uaflgs in thread specific events Use 32-bit atomics for process lock flags Add 32-bit atomics to emulator APIs Use new atomic types in emulator Use 32-bit atomics for ethr_thr_create Use 32-bit atomics for mutex and rwmutex flags Use 32-bit atomics for events Add support for 32-bit atomics Move atomic API into own files Add support for 64-bit atomics on Windows Remove unused ethread time functionality Introduce ethr_sint_t and use it for atomics