ChanServ changed the topic of ##yamahasynths to: Channel dedicated to questions and discussion of Yamaha FM Synthesizer internals and corresponding REing. Discussion of synthesis methods similar to the Yamaha line of chips, Sound Blasters + clones, PCM chips like RF5C68, and CD theory of operation are also on-topic. Channel logs: https://freenode.irclog.whitequark.org/~h~yamahasynths
SceneCAT has quit [Ping timeout: 264 seconds]
cr1901_modern has quit [Ping timeout: 264 seconds]
<cr1901_modern>
Did... did MAME always have such a huge .text section?
_whitelogger has joined ##yamahasynths
emily has quit [Quit: killed]
alva has quit [Quit: killed]
alva has joined ##yamahasynths
emily has joined ##yamahasynths
<andlabs>
I'm surprised it took this long
SceneCAT has joined ##yamahasynths
emeb has joined ##yamahasynths
emeb has quit [Quit: Leaving.]
<sorear>
after a few years they'll hit the default code model limit of 2GB
cr1901_modern1 has joined ##yamahasynths
<cr1901_modern1>
sorear: x86_64's code model limit is 2GB?
vup has quit [Quit: No Ping reply in 180 seconds.]
cr1901_modern has quit [Ping timeout: 240 seconds]
vup has joined ##yamahasynths
<andlabs>
2048 emm should be enough for everybody
<cr1901_modern1>
(Shit I wish 16 emm was enough for everybody lmao)
<sorear>
cr1901_modern1: 32 bit signed displacements on jmp/call/rip-relative
<cr1901_modern1>
ahhh
<cr1901_modern1>
can't you load a register and jump to anywhere you feel like?
<cr1901_modern1>
or not?
* cr1901_modern1
doesn't know x64
<sorear>
sure, that's where the code models come in
<sorear>
gcc doesn't know how far away symbols are, by default it guesses they are within 2GB and uses instruction forms that have that range
<sorear>
if ld discovers the symbols are farther away than that, you get an unrecoverable link error, and you have to start over with different gcc options
<cr1901_modern1>
ahhh, TIL... I thought the default was "use the most pessimistic range and use linker relaxation"
<cr1901_modern1>
to turn long jumps into short jumps
<sorear>
afaik length-changing linker relaxation is only done on riscv and a few obscure uc arches (I don't remember which)
<sorear>
ppc and x64 have relaxation passes that don't change length
<cr1901_modern1>
NEC v810, which is not in-tree anymore, had length-changing linker relaxation