Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add configurables section offset in the preamble #6709

Merged
merged 15 commits into from
Nov 18, 2024

Conversation

vaivaswatha
Copy link
Contributor

@vaivaswatha vaivaswatha commented Nov 11, 2024

Re-enabling this feature after a bugfix. (reverted PR: #6522)

vaivaswatha and others added 3 commits November 11, 2024 13:50
The preamble now contains 8 bytes of offset to the configurables
section. If there is no configurable const in the data-section, then the
value of this integer will be equal to the size of the binary itself.

This also means that we now sort the data-section to have all the
non-configurables first, and then the configurables.

The preamble final asm looks like this (the offset to configurables is
0'd out here in the example):
```
;; ASM: Final program
;; Program kind: Script
.program:
move $$tmp $pc
jmpf $zero i10
DATA_SECTION_OFFSET[0..32]
DATA_SECTION_OFFSET[32..64]
CONFIGURABLES_OFFSET[0..32]
CONFIGURABLES_OFFSET[32..64]
lw   $$ds $$tmp i1
add  $$ds $$ds $$tmp
```
The preamble bytecode looks like this:

```
0x00000000 MOVE R60 $pc                                    ;; [26, 240, 48, 0]
0x00000004 JMPF $zero 0xa                                  ;; [116, 0, 0, 10]
0x00000008                                                 ;; [0, 0, 0, 0, 0, 0, 2, 40]
0x00000010                                                 ;; [0, 0, 0, 0, 0, 0, 0, 0]
0x00000030 LW R63 R60 0x1                                  ;; [93, 255, 192, 1]
0x00000034 ADD R63 R63 R60                                 ;; [16, 255, 255, 0]
...
```

---------

Co-authored-by: Sophie Dankel <[email protected]>
Co-authored-by: IGI-111 <[email protected]>
@vaivaswatha vaivaswatha changed the title fix how configurables are addressed before decoding Add configurables section offset in the preamble Nov 11, 2024
@vaivaswatha vaivaswatha self-assigned this Nov 11, 2024
vaivaswatha and others added 6 commits November 11, 2024 17:28
The preamble now contains 8 bytes of offset to the configurables
section. If there is no configurable const in the data-section, then the
value of this integer will be equal to the size of the binary itself.

This also means that we now sort the data-section to have all the
non-configurables first, and then the configurables.

The preamble final asm looks like this (the offset to configurables is
0'd out here in the example):
```
;; ASM: Final program
;; Program kind: Script
.program:
move $$tmp $pc
jmpf $zero i10
DATA_SECTION_OFFSET[0..32]
DATA_SECTION_OFFSET[32..64]
CONFIGURABLES_OFFSET[0..32]
CONFIGURABLES_OFFSET[32..64]
lw   $$ds $$tmp i1
add  $$ds $$ds $$tmp
```
The preamble bytecode looks like this:

```
0x00000000 MOVE R60 $pc                                    ;; [26, 240, 48, 0]
0x00000004 JMPF $zero 0xa                                  ;; [116, 0, 0, 10]
0x00000008                                                 ;; [0, 0, 0, 0, 0, 0, 2, 40]
0x00000010                                                 ;; [0, 0, 0, 0, 0, 0, 0, 0]
0x00000030 LW R63 R60 0x1                                  ;; [93, 255, 192, 1]
0x00000034 ADD R63 R63 R60                                 ;; [16, 255, 255, 0]
...
```

---------

Co-authored-by: Sophie Dankel <[email protected]>
Co-authored-by: IGI-111 <[email protected]>
Copy link

codspeed-hq bot commented Nov 13, 2024

CodSpeed Performance Report

Merging #6709 will not alter performance

Comparing vaivaswatha/configurables_access (6b958d4) with master (1dfca80)

Summary

✅ 22 untouched benchmarks

@vaivaswatha vaivaswatha marked this pull request as ready for review November 14, 2024 06:24
@vaivaswatha vaivaswatha requested review from a team as code owners November 14, 2024 06:24
tritao
tritao previously approved these changes Nov 14, 2024
xunilrj
xunilrj previously approved these changes Nov 14, 2024
@vaivaswatha vaivaswatha dismissed stale reviews from xunilrj and tritao via 41abe98 November 15, 2024 03:43
@vaivaswatha vaivaswatha requested a review from a team November 16, 2024 08:40
@vaivaswatha vaivaswatha merged commit 9741809 into master Nov 18, 2024
41 checks passed
@vaivaswatha vaivaswatha deleted the vaivaswatha/configurables_access branch November 18, 2024 07:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants