freenode/#sbcl - IRC Chatlog
Search
13:07:40
loke
Then I disassembled te code, and it starts with an ADD 1 instruction. Not ADD 2 as I woul dhave expected if x was boxed (its least significant bit is 0 for fixnums, yes?)
13:09:33
loke
I mean, the code works, and everything runs correctly, so clearly there is nothing wrong, but I'm still curious as to why/how this works.
13:33:33
Xof
loke: if you see (sb-disassem:disassemble-code-component <>) on that, you'll see the unboxing stage
18:35:06
dougk_
i'm reverting 'remove unused slot'. That restores the linux build for the moment while I figure out why that doesn't fix the macOS build
18:39:53
scymtym
corci has failing x86_64 builds (linux and macos) since "Make codegen store a table of simple-fun offsets in code object"
18:49:15
stassats`
when the filler object is inserted into immobile space, does it have the right offsets?
18:49:17
dougk_
probably something like 'constants_start_addr = code_addr + 5*N_WORD_BYTES' (which was in x86-arch, which i removed)
18:50:51
dougk_
well, whichever installs a GF. to make it callable without RAX loaded, it has to be wrapped in a simpleizing tramp, which i thought I had working, but then, i also though i had cheneygc working, so ...
18:59:15
dougk_
the count of simple-funs, i wanted to be a 16 byte int. There are in fact 2 zero bytes at the end of the "code" of a simpleizing tramp.
18:59:39
dougk_
But then i realized that i wasn't sure about where the 2 zero bytes were, so expanded to 4 for the count, which is overkill.
19:00:25
dougk_
I'm going to turn it back to a ub16 for the count. There will always be 2 zero bytes, and I'll just see whether I got big-endian correct or not. solve that problem instead.