Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • M mu-impl-fast
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 40
    • Issues 40
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

WARNING! Access to this system is limited to authorised users only.
Unauthorised users may be subject to prosecution.
Unauthorised access to this system is a criminal offence under Australian law (Federal Crimes Act 1914 Part VIA)
It is a criminal offence to:
(1) Obtain access to data without authority. -Penalty 2 years imprisonment.
(2) Damage, delete, alter or insert data without authority. -Penalty 10 years imprisonment.
User activity is monitored and recorded. Anyone using this system expressly consents to such monitoring and recording.

To protect your data, the CISO officer has suggested users to enable 2FA as soon as possible.
Currently 2.7% of users enabled 2FA.

  • mu
  • mu-impl-fast
  • Merge requests
  • !10

Merged
Created Jun 07, 2017 by Isaac Gariano@igariano01Maintainer

Merge aarch64 into master

  • Overview 0
  • Commits 12
  • Changes 15

Apart from modifications to the aarch64 backend (to support 128 bit arithmetic, adding additional debug info so that backtrace works, supporting FuncRef's and fixing the way Branch2 works), I have made a few changes to the other parts of the code:

  • I added a few simple utility functions in ir.rs and op.rs
  • I added a test that tests for 128-bit subtraction
  • I modified entrypoints.rs so that the the 128-bit arithmetic functions operate on UINT128's as opposed to pairs of UINT64's
  • I also added conversion functions to entrypoints.rs and math.rs that convert to and from floating-point and int128's
  • I modified the x86_64 instruction selection so that it calls the 128 bit arithmetic functions with 128-bit arguments (and not pairs of 64-bit ones)
  • (Note: I haven't implimented the floating point conversions in x86_64, but that should be easilly doable by just copying my aarch64 code)

Running the som interpreter (when compiled with Zebu) takes 116.44 seconds (specifically the command /tmp/RPySOM-no-jit-mu -cp ./RPySOM/Smalltalk ./RPySOM/TestSuite/TestHarness.som, after running pytest ./test_som.py)

Running the SOM interpret through rpythons C-backend took 0.01 seconds (i.e. runing ./RPySOM-no-jit -cp ../RPySOM/Smalltalk ../RPySOM/TestSuite/TestHarness.som after running python2 ./rpython/bin/rpython -O3 --no-shared ../RPySOM/src/targetsomstandalone.py

Interestingly this is faster than running on my x86-64 virtual machine (whose processor is much better than the aarch64 machines) which took 0.57 seconds, however running it through Zebu was slower (x86-64 only took 76.08 seconds).

I.e. it is about 11.6 thousand times slower running through Mu on aarch64 and only 1.5 thousand times slower on x86-64.

Note: the time with interpreting through python (i.e. running python2 ./src/targetsomstandalone.py -cp ./Smalltalk ./TestSuite/TestHarness.som) was 5.17 seconds on aarc64 and 5.48 on x86-64, indicating that Zebu is 22.5 times slower than python on aarch64 and only 14 times slower on x86-64.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: aarch64