aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-07-03Store r(0) and x(0) in the same locationBjörn Gustavsson
As part of improving code generation for clang, we want to eliminate the special variable that stores the content of X register zero most of the time. In a future, that will allow us to eliminate the special case of handling r(0) for most instructions, thus reducing the code size and allow other simplifcations. Therefore, in this commit, eliminate the variable that is used to store r(0) and make r(0) as synonym for x(0). I have chosen to keep the r(0) define to keep the size of the diff managable.
2015-07-03Change the meaning of 'x' in a transformationBjörn Gustavsson
The purpose of this series of commits is to improve code generation for the Clang compiler. As a first step we want to change the meaning of 'x' in a transformation such as: operation Literal=q => move Literal x | operation x Currently, a plain 'x' means reg[0] or x(0), which is the first element in the X register array. That element is distinct from r(0) which is a variable in process_main(). Therefore, since r(0) and x(0) are currently distinct it is fine to use x(0) as a scratch register. However, in the next commit we will eliminate the separate variable for storing the contents of X register zero (thus, x(0) and r(0) will point to the same location in the X register array). Therefore, we must use another scratch register in transformation. Redefine a plain 'x' in a transformation to mean x(1023). Also define SCRATCH_X_REG so that we can refer to the register by name from C code.
2015-07-03beam_emu.c: Remove unused MoveGenDest macroBjörn Gustavsson
2015-07-03beam_makeops: Eliminate crash because of unsafe packingBjörn Gustavsson
Consider an hypothetical instruction: do_something x x c The loader would crash if we tried to load an instance of the instruction with the last operand referencing a literal: {do_something,{x,0},{x,1},{literal,{a,b,c}}} Teach beam_makeops to turn off packing for such unsafe instructions.
2015-07-03Merge branch 'maint'Björn Gustavsson
* maint: Add a smoke test of erts_debug:df/1 Correct disassembly of the i_get_map_elements instruction
2015-07-03Merge branch 'bjorn/erts/beam_debug' into maintBjörn Gustavsson
* bjorn/erts/beam_debug: Add a smoke test of erts_debug:df/1 Correct disassembly of the i_get_map_elements instruction
2015-07-03Merge branch 'maint'Björn-Egil Dahlberg
2015-07-03Merge branch 'egil/fix-configure-pthread_getname/OTP-12887' into maintBjörn-Egil Dahlberg
* egil/fix-configure-pthread_getname/OTP-12887: erts: Fix configure pthread_getname
2015-07-03Merge branch 'egil/update-gitgnore' into maintBjörn-Egil Dahlberg
2015-07-03mnesia: Update gitignoreBjörn-Egil Dahlberg
2015-07-03Merge branch 'maint'Hans Nilsson
* maint: ssh: testcases for no common algorithms in key exchange
2015-07-03Merge branch 'hans/ssh/no_common_algs/OTP-11531' into maintHans Nilsson
* hans/ssh/no_common_algs/OTP-11531: ssh: testcases for no common algorithms in key exchange
2015-07-03Merge branch 'maint'Hans Nilsson
* maint: ssh: Initial ssh_tprt_test_lib.erl and ssh_protocol_SUITE
2015-07-03Merge branch 'hans/ssh/trpt_test_lib/OTP-12858' into maintHans Nilsson
2015-07-03Merge branch 'maint'Ingela Anderton Andin
2015-07-03Merge branch 'ia/ssl/tune-tests' into maintIngela Anderton Andin
* ia/ssl/tune-tests: ssl: Exclude broken OpenSSL version from ECC test ssl: Tune timeouts
2015-07-02erts: Fix configure pthread_getnameBjörn-Egil Dahlberg
2015-07-02ssl: Exclude broken OpenSSL version from ECC testIngela Anderton Andin
2015-07-02ssl: Tune timeoutsIngela Anderton Andin
2015-07-02Merge branch 'egil/remove-halfword/OTP-12883'Björn-Egil Dahlberg
* egil/remove-halfword/OTP-12883: erts: Remove halfword !HEAP_ON_C_STACK
2015-07-02Add a smoke test of erts_debug:df/1Björn Gustavsson
Run erts_debug:df/1 for all loaded modules. On my reasonably fast, modern computer this test case runs in approximately 10 seconds. To avoid spending many minutes running this test case on older computers, limit the running time to 20 seconds. While we are at it, remove all ?line macros.
2015-07-02Correct disassembly of the i_get_map_elements instructionBjörn Gustavsson
The emulator would crash.
2015-07-02ssh: testcases for no common algorithms in key exchangeHans Nilsson
2015-07-02ssh: Initial ssh_tprt_test_lib.erl and ssh_protocol_SUITEHans Nilsson
This test lib is intended for deeper testing of the SSH application. It makes it possible to do exact steps in the message exchange to test "corner cases"
2015-07-01erts: Remove halfword !HEAP_ON_C_STACKBjörn-Egil Dahlberg
2015-07-01Merge branch 'egil/remove-halfword/OTP-12883'Björn-Egil Dahlberg
* egil/remove-halfword/OTP-12883: (21 commits) erts: Remove halfword etp-commands erts: Remove halfword MemKind mseg erts: Remove halfword bases in ETS erts: Remove halfword CHECK_POINTER_MASK erts: Remove halfword relative printf erts: Remove halfword valgrind suppress file erts: Remove halfword specific tests erts: Remove halfword specific allocator types erts: Remove halfword BINARY RELs erts: Remove halfword is_same bases macro erts: Reinstate copy_object over-allocation optimization erts: Remove halfword copy_object_rel erts: Remove halfword object manipulation erts: Remove halfword heap relative comparisions erts: Remove halfword pointer compression erts: Remove halfword basic relative heap operations erts: Remove halfword from configure erts: Remove halfword in lib_src erts: Remove halfword in erl_nif.h erts: Remove halfword in erl_driver.h ...
2015-06-30Merge branch 'maint' to 'master'Sverker Eriksson
2015-06-30Merge branch 'sverk/ets-unfix-delete-race/OTP-12870' into maintSverker Eriksson
* sverk/ets-unfix-delete-race/OTP-12870: erts: Fix ETS race between object deleter and table unfixer
2015-06-30Merge branch 'maint' to 'master'Sverker Eriksson
2015-06-30Merge branch 'sverk/map-merge-trap' into maintSverker Eriksson
* sverk/map-merge-trap: erts: Expand test map_SUITE:t_bif_merge_and_check
2015-06-30Merge branch 'maint'Sverker Eriksson
Conflicts: OTP_VERSION
2015-06-30Merge branch 'maint-18' into maintSverker Eriksson
2015-06-30Merge branch 'maint'Hans Nilsson
* maint: ssh: correct sftp unicode and iolist bug ssh: new unicode tests ssh: delete ssh_unicode_SUITE
2015-06-30Merge branch 'hans/ssh/sftp_iolist/OTP-12853' into maintHans Nilsson
* hans/ssh/sftp_iolist/OTP-12853: ssh: correct sftp unicode and iolist bug ssh: new unicode tests ssh: delete ssh_unicode_SUITE
2015-06-30ssh: correct sftp unicode and iolist bugHans Nilsson
Ssh_sftp.erl handled incorrectly unicode data in ssh_ftp:write_file. There was also problems with some deeper iolists.
2015-06-30ssh: new unicode testsHans Nilsson
2015-06-30ssh: delete ssh_unicode_SUITEHans Nilsson
The tests now have supersets in ssh_basic_SUITE and ssh_sftp_SUITE.
2015-06-30Updated OTP versionOTP-18.0.1Erlang/OTP
2015-06-30Prepare releaseErlang/OTP
2015-06-30Merge branch 'sverk/poll-lost-wakeup/OTP-12859' into maint-18Erlang/OTP
* sverk/poll-lost-wakeup/OTP-12859: erts: Fix race in poller thread wake up
2015-06-29Merge branch 'maint'Sverker Eriksson
2015-06-29Merge branch 'maint-17' into maintSverker Eriksson
Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk otp_versions.table
2015-06-26erts: Fix ETS race between object deleter and table unfixerSverker Eriksson
causing the delete marked object to be left in the table after safe_fixtable(_,false) has returned. This is not super serious as the delete marked object is quite benign and will be deleted at the next unfix operation.
2015-06-25Updated OTP versionOTP-17.5.6.1Erlang/OTP
2015-06-25Prepare releaseErlang/OTP
2015-06-25Merge branch 'sverk/poll-lost-wakeup/OTP-12859' into maint-17Erlang/OTP
* sverk/poll-lost-wakeup/OTP-12859: erts: Fix race in poller thread wake up
2015-06-25Merge branch 'egil/fix-purge-literals/OTP-12821' into maint-17Erlang/OTP
* egil/fix-purge-literals/OTP-12821: erts: Fix garbage collect literals in code purge
2015-06-24erts: Remove halfword etp-commandsBjörn-Egil Dahlberg
2015-06-24erts: Remove halfword MemKind msegBjörn-Egil Dahlberg
2015-06-24erts: Remove halfword bases in ETSBjörn-Egil Dahlberg