log☇︎
17700+ entries in 0.006s
asciilifeform: it's 'optimal' in the sense that it fucks the branch predictor less than an always-computed-jump
asciilifeform: for larger, does a computed jump
asciilifeform: mircea_popescu: it's what gcc does for small (i dun recall threshhold) computed switch
asciilifeform prolly oughta have read the orig adb prior to doing this
asciilifeform: they're diana_coman's exception handlers.
asciilifeform: aah lol i'm a tard :
asciilifeform: the rest, i will omit, but also end up in the various unwindisms, aborts, stubs.
asciilifeform: 490 is various mechanics, ends with _Unwind_SjLj_Resume .
asciilifeform: var_B8 contains some flag. valid values are 0, 1, 2, 3. if 0, we go to loc_490. if 1, loc_601. if 2, loc_62d. if 3, loc_659. if above 4, program dies, cpu executes ud2 (guaranteed bomb) .
asciilifeform: want expand ?
asciilifeform: i suspect mircea_popescu dun habitually read gcc barf
asciilifeform: i.e. loox like is a flag that triggers an unwind
asciilifeform: jz somewhere
asciilifeform: test eax, eax
asciilifeform: cuz it's the 2nd half of a conditional ?
asciilifeform: aa ljmp
asciilifeform: in which
asciilifeform is prolly doomed to actually vivisect the gnat backend at some pt, prolly sooner rather than later
asciilifeform: i'ma guess it is for word-alignment (why not ordinary nop ?? )
asciilifeform: ( which is why asciilifeform never saw it in gnat disasms prior )
asciilifeform: it is only in ljmp-variant
asciilifeform currently wondering wtf https://www.felixcloutier.com/x86/ud is doing in there
asciilifeform: ( will guess, tho i do not presently know, that these trigger unwind of stack )
asciilifeform: also loox like the ljmp variant puts abortism stub in erry proc (that appears in a task, that is)
asciilifeform: yw mircea_popescu
asciilifeform: ^ in classic intelistic form, and with decoded debug symbols
asciilifeform: http://www.loper-os.org/pub/misc/zcx_procs.asm http://www.loper-os.org/pub/misc/ljmp_procs.asm ☟︎
asciilifeform: 1s
asciilifeform: cuz it keeps the where to longjmp in'ere.
asciilifeform: sub $0xXX,%rsp
asciilifeform: mircea_popescu: the stack frame.
asciilifeform: i was discussing diana_coman's much earlier empirical find, that on ljmp stack fills faster per same # of calls. this here is why.
asciilifeform: and see above
asciilifeform: then yes
asciilifeform: aa your were speaking of coad mass
asciilifeform: ( to 0 measurable diff in ffa, oddly enuff, but on e.g. tiny micros might make a diff.. )
asciilifeform: but indeed the ljmp variant craps out slightly bulkier coad across the board
asciilifeform: plus moar killed regs
asciilifeform: the stack frame, that is
asciilifeform: 0x28 == 40 , 0xb8 == 184
asciilifeform: mircea_popescu: where 50 and 60 ?
asciilifeform: ( before anyone asks, the 'unwind resume' variants are extern stdlib symbols, and i haven't looked to see how they differ yet )
asciilifeform: for thread-completeness : http://www.loper-os.org/pub/misc/zcx_proc_flow.png http://www.loper-os.org/pub/misc/ljmp_proc_flow.png
asciilifeform: d: 48 81 ec b8 00 00 00 sub $0xb8,%rsp
asciilifeform: c: 53 push %rbx
asciilifeform: a: 41 54 push %r12
asciilifeform: 8: 41 55 push %r13
asciilifeform: 6: 41 56 push %r14
asciilifeform: 4: 41 57 push %r15
asciilifeform: 1: 48 89 e5 mov %rsp,%rbp
asciilifeform: 0: 55 push %rbp
asciilifeform: 0000000000000000 <procs__a>:
asciilifeform: longjmpistic:
asciilifeform: 9: 48 83 ec 28 sub $0x28,%rsp
asciilifeform: 8: 53 push %rbx
asciilifeform: 6: 41 54 push %r12
asciilifeform: 4: 41 55 push %r13
asciilifeform: 1: 48 89 e5 mov %rsp,%rbp
asciilifeform: 0: 55 push %rbp
asciilifeform: 0000000000000000 <procs__a>:
asciilifeform: zcxistic :
asciilifeform: at the risk of log clutter, will put ftr :
asciilifeform: err, 'procs' and 'mt'
asciilifeform: though, interestingly, only in the unit 'procs' , which actually contains exceptionisms
asciilifeform: diana_coman: btw your 'lick the 9v' intuitive observation earlier was correct, on ljmp variant the default stack frame indeed longer, 184byte vs 40
asciilifeform: aa ok
asciilifeform: diana_coman: the 'zcx' tarball contains a 'ljmp_calls' dir, same as other 1. which is correct ?
asciilifeform: ty diana_coman ! i'ma look
asciilifeform: this does not contradict the hypothesis re handlers tho ( i have only the 'last chance' handler ). it does suggest that sjlj does not speed up ordinary calls substantially tho.
asciilifeform finds that (using pre-ave1 gnat, where i currently can --RTS=sjlj ) no detectable diff in mod ex
asciilifeform goes to test..
asciilifeform nao wonders if there's a seekrit chest fulla ffa speedup in this dig
asciilifeform: iirc on some kernels 'ulimit -s unlimited' worked
asciilifeform: ( and it's lower than installed ram?! )
asciilifeform: ugh is there a hard max ?!
asciilifeform: mircea_popescu: i've had to up stack depth on 1 occasion before -- when testing ffa with ridiculously wide bitnesses ( recall, item runs 100% stackistically )
asciilifeform: ( asciilifeform found that ye olde box cannot actually sustain 100% 8-core for 2+hrs. trips sensor. quite annoying. )
asciilifeform: *overheat
asciilifeform not yet burned down, but managed to overhead $box recently
asciilifeform: diana_coman: fwiw the noise floor on e.g my test box, is 0.003 (i.e. a proggy with empty main)
asciilifeform: a aaa.
asciilifeform: mircea_popescu: i cannot resist to ask, is it 'ragassa' and not 'ragazza' ? ( was it a sicilianism or wat )
asciilifeform: ty
asciilifeform: ( we aren't so much concerned with the 3MB standard lib )
asciilifeform: diana_coman: ideally when you do this, tar up not only the final bin but the contents of obj dir
asciilifeform: aite, i'ma do it to the variant mircea_popescu goes with
asciilifeform: ( from ancient gnat will suffice for time being , for that )
asciilifeform: diana_coman: if you have time, plox post a pair of bins so that i can http://btcbase.org/log/2019-02-14#1896414 tonight ☝︎
asciilifeform: ok
asciilifeform: diana_coman: how quickly is 'very' ? ( can haz numeric ? e.g. 'zxc eats 1kb per level of depth, sjlj - 2kb' )
asciilifeform briefly wondered if ben_vulpes
asciilifeform: !!down drunk_foxx
asciilifeform: aanybody have any idea who ^ is ?
asciilifeform: drunk_foxx: better be quick
asciilifeform: !!up drunk_foxx
asciilifeform: ( and ftr i dun hate winter, either 'bitcoin' or of the ordinary kind, winter is a-ok for so long as you aint stuck in the wind w/out a coat )
asciilifeform: i dun read 'soshulmeadia', dun have any data other than 'no one seems to be offering 20k orc dubloons for coin like yr ago, just nao'
asciilifeform: mircea_popescu: could even say nao is 'bitcoin winter', the sorts of folx inclined to stuff head up arse are stuffing deeper than ever and boasting
asciilifeform: ohai phf
asciilifeform: 'pioneer is the fella with arrow in his back' eh