<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/core/arm/arm_interface.h, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2023-12-23T02:52:49+00:00</updated>
<entry>
<title>kernel: instantiate memory separately for each guest process</title>
<updated>2023-12-23T02:52:49+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-12-12T01:21:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=e2b5f2392e03f37eeccb135814286a62ba629d3d'/>
<id>urn:sha1:e2b5f2392e03f37eeccb135814286a62ba629d3d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>core: refactor emulated cpu core activation</title>
<updated>2023-12-04T15:37:16+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-11-28T19:30:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=3d5c6a73cba80a58363a59ece4cd60c101d8b516'/>
<id>urn:sha1:3d5c6a73cba80a58363a59ece4cd60c101d8b516</id>
<content type='text'>
</content>
</entry>
<entry>
<title>arm: Implement native code execution backend</title>
<updated>2023-11-25T05:46:47+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-11-17T21:44:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=19619b1b14ce347b09118626efc57f8551f2a5bf'/>
<id>urn:sha1:19619b1b14ce347b09118626efc57f8551f2a5bf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixes and workarounds to make UBSan happier on macOS</title>
<updated>2023-07-15T19:00:28+00:00</updated>
<author>
<name>comex</name>
<email>comexk@gmail.com</email>
</author>
<published>2023-07-01T22:00:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=85d77f636c7ab28ea67c4c303f5d85b063ceed73'/>
<id>urn:sha1:85d77f636c7ab28ea67c4c303f5d85b063ceed73</id>
<content type='text'>
There are still some other issues not addressed here, but it's a start.

Workarounds for false-positive reports:

- `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`,
  because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp)
  of how big it thinks objects can be, specifically when dealing with
  offset-to-top values used with multiple inheritance.  Hopefully this
  doesn't have a performance impact.

- `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks
  is UB even though it at least arguably isn't.  See the link in the
  comment for more information.

Fixes for correct reports:

- `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to
  avoid UB from pointer overflow (when pointer arithmetic wraps around
  the address space).

- `KScheduler::Reload`: `thread-&gt;GetOwnerProcess()` can be `nullptr`;
  avoid calling methods on it in this case.  (The existing code returns
  a garbage reference to a field, which is then passed into
  `LoadWatchpointArray`, and apparently it's never used, so it's
  harmless in practice but still triggers UBSan.)

- `KAutoObject::Close`: This function calls `this-&gt;Destroy()`, which
  overwrites the beginning of the object with junk (specifically a free
  list pointer).  Then it calls `this-&gt;UnregisterWithKernel()`.  UBSan
  complains about a type mismatch because the vtable has been
  overwritten, and I believe this is indeed UB.  `UnregisterWithKernel`
  also loads `m_kernel` from the 'freed' object, which seems to be
  technically safe (the overwriting doesn't extend as far as that
  field), but seems dubious.  Switch to a `static` method and load
  `m_kernel` in advance.
</content>
</entry>
<entry>
<title>core: decouple ARM interface from Dynarmic</title>
<updated>2023-06-13T02:11:51+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-06-13T01:34:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5b858c8306bdb7d31017e6a9429f7767086377bb'/>
<id>urn:sha1:5b858c8306bdb7d31017e6a9429f7767086377bb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kernel: use KTypedAddress for addresses</title>
<updated>2023-03-22T13:35:16+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-03-18T01:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=156516e399b2ce2823f1d117c2800b5756edf4ce'/>
<id>urn:sha1:156516e399b2ce2823f1d117c2800b5756edf4ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kernel/svc: switch to generated wrappers</title>
<updated>2023-02-07T04:57:44+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-02-05T19:22:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b91913334e44aab65cc0c22d7ad4d94ac51f24ad'/>
<id>urn:sha1:b91913334e44aab65cc0c22d7ad4d94ac51f24ad</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #8637 from liamwhite/bad-interrupts</title>
<updated>2022-08-08T00:48:55+00:00</updated>
<author>
<name>bunnei</name>
<email>bunneidev@gmail.com</email>
</author>
<published>2022-08-08T00:48:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=f5e9f8c9fee251db487ada5e43c6df2bb88fff7a'/>
<id>urn:sha1:f5e9f8c9fee251db487ada5e43c6df2bb88fff7a</id>
<content type='text'>
kernel: unlayer CPU interrupt handling</content>
</entry>
<entry>
<title>chore: make yuzu REUSE compliant</title>
<updated>2022-07-27T10:53:49+00:00</updated>
<author>
<name>Andrea Pappacoda</name>
<email>andrea@pappacoda.it</email>
</author>
<published>2022-05-15T00:06:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=6a2efdda2f7075331cab36901a30d511468f60e7'/>
<id>urn:sha1:6a2efdda2f7075331cab36901a30d511468f60e7</id>
<content type='text'>
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.

Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.

The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.

Following REUSE has a few advantages over the current approach:

- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
  `.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
  files like binary assets / images is always accurate and up to date

To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.

[REUSE]: https://reuse.software

Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
</content>
</entry>
<entry>
<title>kernel: unlayer CPU interrupt handling</title>
<updated>2022-07-25T16:14:15+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2022-07-08T00:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=3edb108f4b67091aace2fb522b06b55d8228c81b'/>
<id>urn:sha1:3edb108f4b67091aace2fb522b06b55d8228c81b</id>
<content type='text'>
</content>
</entry>
</feed>
