flat assembler
Message board for the users of flat assembler.
 Home   FAQ   Search   Register 
 Profile   Log in to check your private messages   Log in 
flat assembler > Main > Stack Realignment "Techniques"

Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
Author
Thread Post new topic Reply to topic
Furs



Joined: 04 Mar 2016
Posts: 759
"You guys are funny..." have you ever considered that, if everyone around you is an idiot/crazy/funny, maybe, just maybe, it's actually you? Wink


system error wrote:
Unless you come up with your own C-compiler, calling them idiots is not valid

Why not? 1000+ people worked and contributed on GCC over 3 decades, some gone for a long time. You're hilarious if you think it's a few-man project of some "non idiots" in a garage, not like you ever worked on a big project I suppose. (also, I didn't call them idiots, I called some current maintainers retarded, and not for their programming skills either, but for their management)

Oh and for the last time, ABI is not Windows API. It's not even "API". ABI applies to **ALL** functions that use it, including any 3rd party libraries that use it instead of something custom (which is 99.9% of all of them, made by anyone, not just Microsoft). Callbacks in protocols also use it, so your function (which is a callback in the end) has to save those registers, IT IS NOT OPTIONAL.
Post 03 Sep 2017, 12:03
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652
Furs, why don't you stop talking about ABI, API and stuff. The fact that you thought AVX vectors and instructions are part of the MS64-bit ABI says a lot about your INCOMPETENCY. That alone nullifies all your "expert garbage" your're trying to sell to unsuspecting audience like REVOLUTION. Funny he/she just played along with your craps that long without noticing that something BIG is really wrong with your incompetency along the way. hahahaha xD

256-vector data WHAT??? hahahaha xD
Post 03 Sep 2017, 13:14
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 759
Page 4, my post:

Furs wrote:
??? XMM6+ are required to be saved due to MS x64 ABI. In fact, that's the entire reason for Intel adding the "vzeroupper" crap and complicating themselves with it -- instead of just doing it, by default, zero-extension when they added ymm registers.

(MS ABI, being "old", only requires the XMM regs to be saved, as in the 128-bit lowerpart since that's what existed when it was designed, this is why any ABI reliant on piece of shit SSE is garbage and not future-proof; Linux x64 ABI has no problems at all here)

Indeed, AVX in your brain only. (just FYI, AVX2 registers are YMM, and AVX is not SSE; unless you don't know that YMM registers ALIAS the XMM registers??? if so, LOL at you man)

Now please continue with your hysteria because you got so schooled you have nothing other than bullshit to spew.
Post 03 Sep 2017, 13:22
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652

Furs wrote:
Page 4, my post:

Furs wrote:
??? XMM6+ are required to be saved due to MS x64 ABI. In fact, that's the entire reason for Intel adding the "vzeroupper" crap and complicating themselves with it -- instead of just doing it, by default, zero-extension when they added ymm registers.

(MS ABI, being "old", only requires the XMM regs to be saved, as in the 128-bit lowerpart since that's what existed when it was designed, this is why any ABI reliant on piece of shit SSE is garbage and not future-proof; Linux x64 ABI has no problems at all here)

Indeed, AVX in your brain only. (just FYI, AVX2 registers are YMM, and AVX is not SSE)

Now please continue with your hysteria because you got so schooled you have nothing other than bullshit to spew.



No Furs. They don't need align-32 alignment for SSE. MS64-bit ABI doesn't require 32-bit alignment xD

What are you trying to justify here when everybody can read all your INCOMPETENT posts loud and clear? hahahaha xD
Post 03 Sep 2017, 13:26
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 759
CTRL+F in the quote I don't see the word "alignment"? Stop grasping at straws like a cornered dog.

And yes who's "everyone", the "everyone else" you find funny/idiot? It's just you dude. You're alone with your bullshit. Deal with it.
Post 03 Sep 2017, 13:27
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652
Edit by revolution: post removed due to personal attacks. Sorry, you were warned a few times already.
Post 03 Sep 2017, 13:31
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652

Furs wrote:
There's another problem I discovered with GCC. When it saves the XMM registers on the stack (the bullshit x64 MS ABI being the only one in existence requiring so, none other ABI (x64 or 32-bit) need it, I fucking hate it)... it emits shit code like (translated from AT&T):


Code:
push rbp 
mov rbprsp 
sub rsp64  ; space for XMM regs saved (4 of them in this case) 
and rsp, -32 ; realign stack to 32-bytes (yes, regs are saved unaligned!) 
sub rsp32  ; stack frame (random stuff, one AVX2 vector in this case)




HAHAHAHAHA!! Is that how you translated ABI implementation from reading MSDN manuals and C source code? With 32-byte alignment and AVX2 instructions and stuff?? OMG!!

No Furs, MS64-bit ABI has nothing to do with them! Your DENIAL GAME is not working anymore, becuase I can always re-quote your posts every time! You have no place to hide your face. xD
Post 03 Sep 2017, 13:43
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 759
I have no idea what you're talking about. That code was translated from GCC's output. GCC outputs code in AT&T syntax, hence the exact thing I said.

Next time I'll simply copy-paste AT&T code directly from GCC just for you instead of "translating" it. Wink I bet you will whine like how AT&T is "garbage" or other completely off topic stuff in that case, just to avoid the point.
Post 03 Sep 2017, 13:48
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652

Furs wrote:
I have no idea what you're talking about. That code was translated from GCC's output. GCC outputs code in AT&T syntax, hence the exact thing I said.

Next time I'll simply copy-paste AT&T code directly from GCC just for you instead of "translating" it. Wink I bet you will whine like how AT&T is "garbage" or other completely off topic stuff in that case, just to avoid the point.



Ok okay. You're correct. MS-64 ABI does use AVX2 vectors and 32-byte alignment. Happy?

See, I let you win that easy just for old time's sake xD
Post 03 Sep 2017, 13:57
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652
@revo is deleting my posts? Surprised

I saw someone got extremely MAD! That's scary!!

Ok, I am leaving this thread, if that is what you wanted. I hope that should make Furs happy Very Happy
Post 03 Sep 2017, 14:01
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 15096
Location: The Unicomplex

system error wrote:
@revo is deleting my posts? Surprised

Yes.

system error wrote:
I saw someone got extremely MAD! That's scary!!

With all the name calling would you be surprised?
Post 03 Sep 2017, 14:44
View user's profile Send private message Visit poster's website Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 759

system error wrote:
Ok okay. You're correct. MS-64 ABI does use AVX2 vectors and 32-byte alignment. Happy?

MS-64 ABI uses (mandates they are saved) XMM regs, so using the same AVX2 registers implicitly clobbers them since they alias them.

Your argument is as retarded as saying "hypothetical ABI talks about eax, so if you use rax, you don't have to care about saving eax". LOL.

Oh wait, I forgot, you don't know YMM registers alias the XMM registers. Using say, YMM6 in your code, destroys the XMM6 reg, which the ABI says must be saved. YMM6<->XMM6 is exact same relationship as rax<->eax Wink
Post 03 Sep 2017, 14:51
View user's profile Send private message Reply with quote
ProphetOfDoom



Joined: 08 Aug 2008
Posts: 101
Location: UK

revolution wrote:

system error wrote:
@revo is deleting my posts? Surprised

Yes.

system error wrote:
I saw someone got extremely MAD! That's scary!!

With all the name calling would you be surprised?


The atmosphere generally on this board has been toxic these last few weeks. So much hatred. I would delete even more posts than revolution has. I think he's been remarkably restrained actually. It makes you not want to post your opinions because you know most people are more concerned with their next flame attack than having a reasonable balanced discussion.
Post 04 Sep 2017, 16:14
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652

ProphetOfDoom wrote:

revolution wrote:

system error wrote:
@revo is deleting my posts? Surprised

Yes.

system error wrote:
I saw someone got extremely MAD! That's scary!!

With all the name calling would you be surprised?


The atmosphere generally on this board has been toxic these last few weeks. So much hatred. I would delete even more posts than revolution has. I think he's been remarkably restrained actually. It makes you not want to post your opinions because you know most people are more concerned with their next flame attack than having a reasonable balanced discussion.



Trust me, it would be even worse if we don't put a stop to an "expert" running loose on this board spreading bad technical advises to beginners, diverting people's attention off REAL technical discussions, calling other "products" and people stupid and idiot and worse under the pretense of an "expert of FASM / Assembly language".

Now let us see how his expert "patch" is going to make it to those BRILLIANT GCC maintainers / developers.

Entertainment is abound if you flamed the right "expert" with mind-boggling questions. Enjoy it xD
Post 05 Sep 2017, 11:35
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652

Furs wrote:
MS-64 ABI uses (mandates they are saved) XMM regs, so using the same AVX2 registers implicitly clobbers them since they alias them.



MS-64 bit ABI don't use no AVX2 instructions or registers. I think I already explained that to you 6 times already in this thread alone. And 12 more times in other threads!

If you saw a chunk of code applying 32-bit alignment or using AVX instruction sets and registers, then they have nothing to do with MS64-bit ABI. The fact that you been mentioning it at every chunk of your codes examples demosntrates that you have very low competency in discussing about this, not to mention sending a patch to a MORE ESTABLISHED and MATURED products like GCC. GCC builds Linux and C++.

Let that fact sink in into your garbage attitude instead of barking around the board trying to convince people that you are an "expert" or someone important.

Sorry for making your thread looks horrible. But in the end we'll know that there WILL BE NO PATCH coming from you regardless how "expert" you claimed you are at the beginning of this thread. NO PATCH. All about EMPTY TALKS and GARBAGE. Your ending plot is well anticipated xD
Post 05 Sep 2017, 11:51
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652
Furs, I really hope that you can start a new thread. This thread looks messy and quite DEBUNKED. I promise, I won't "school" you anymore in your new "expert" threads.

Cheers xD
Post 05 Sep 2017, 12:05
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 759

system error wrote:
MS-64 bit ABI don't use no AVX2 instructions or registers.

It uses the XMM registers, and the AVX registers alias the XMM registers. Repeat that 1000 times until you get it. Write it down, if needed. Any modification of YMM register results in XMM register (which ABI uses), so shut the fuck up with your childish denial.
Post 05 Sep 2017, 18:50
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652

Furs wrote:

system error wrote:
MS-64 bit ABI don't use no AVX2 instructions or registers.

It uses the XMM registers, and the AVX registers alias the XMM registers.



Since YMM is an alias of XMM, and MS-64 ABI don't use the AVX, there's no reason to use YMM even if they present. No. No reason to touch YMMs simply because the ABI DON'T use AVX. They don't touch it, so they don't have to deal with it.

Why would the ABI use vzeroupper if they never use the upper half of the YMM in the first place? And not every PC has AVX support. And in such PCs, there's no AVX instruction like vzeroupper!!

See, your incompetence is showing again. hehehehe xD
Post 05 Sep 2017, 19:31
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 759
Are you mentally challenged or something?
  • I use YMM6 register in my function, and implicitly, XMM6. Deal with it.
  • Function is a callback using MS ABI (because that's what the caller of the fucking callback expects); no, I'd never use this piece of shit ABI if it wasn't required in stuff out of my control (such as callbacks for a DSP processing function in a plugin, why else would I use AVX?!)
  • My function thus trashes XMM6 since it's aliased to YMM6
  • Since the caller of the callback (callback happens to be my function, so it calls my function) expects XMM6 to be unchanged (due to ABI), GCC must save XMM6 since the stupid ABI requires it
  • If the ABI did not require it, then the caller wouldn't expect it to be unchanged, and thus none of this would be an issue (see: Linux x64 ABI for a REAL EXAMPLE where GCC will not save XMM6, just use attribute sysv_abi)
This is just a simplified example of course, but something tells me you still won't understand it (on purpose), grasping at straws aye.
Post 05 Sep 2017, 21:48
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 652

Furs wrote:
Are you mentally challenged or something?
  • I use YMM6 register in my function, and implicitly, XMM6. Deal with it.
  • Function is a callback using MS ABI (because that's what the caller of the fucking callback expects); no, I'd never use this piece of shit ABI if it wasn't required in stuff out of my control (such as callbacks for a DSP processing function in a plugin, why else would I use AVX?!)
  • My function thus trashes XMM6 since it's aliased to YMM6
  • Since the caller of the callback (callback happens to be my function, so it calls my function) expects XMM6 to be unchanged (due to ABI), GCC must save XMM6 since the stupid ABI requires it
  • If the ABI did not require it, then the caller wouldn't expect it to be unchanged, and thus none of this would be an issue (see: Linux x64 ABI for a REAL EXAMPLE where GCC will not save XMM6, just use attribute sysv_abi)
This is just a simplified example of course, but something tells me you still won't understand it (on purpose), grasping at straws aye.



It's your OWN code that runs only on your own AVX home PC with your OWN calling convention and your own IMAGINARY LIBRARY. WHO CARES!! ONLY GORILLAS and YOU use them! Sorry, not MS-ABI compliant. Nothing to do with MS64 ABI! And NOOOO. MS64 ABI don't use AVX!! hahahaha xD
Post 05 Sep 2017, 22:50
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next

< Last Thread | Next Thread >

Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001-2005 phpBB Group.

Main index   Download   Documentation   Examples   Message board
Copyright © 2004-2016, Tomasz Grysztar.