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

[Meta] Chromium building with -integrated-as on ARM #20796

Closed
nico opened this issue Jul 24, 2014 · 20 comments
Closed

[Meta] Chromium building with -integrated-as on ARM #20796

nico opened this issue Jul 24, 2014 · 20 comments
Labels
backend:ARM bugzilla Issues migrated from bugzilla

Comments

@nico
Copy link
Contributor

nico commented Jul 24, 2014

Bugzilla Link 20422
Version trunk
OS All
Depends On #20797 #20800 #20801 #20802 #20803 #20821 #21074 #21076 #23374 #26094 #26096 #30406
Blocks #21794
CC @compnerd,@emaste,@zmodem,@rengolin,@TNorthover

Extended Description

Chromium currently uses -fno-integrated-as since using the integrated as leads to compile errors. I'll file one bug per issue and mark this bug here blocked on all issues.

@nico
Copy link
Contributor Author

nico commented Jul 24, 2014

(upstream bug is https://code.google.com/p/chromium/issues/detail?id=124610)

Renato, maybe you know if anyone cares about this?

@rengolin
Copy link
Member

Hi Nico,

I'm interested in IAS bugs, as well as some other folks like Saleem and ARM, but I can't pursue the Chromium project myself. I hadn't seen the attached bugs to this one, but I will now.

As a general rule, pre-UAL support as well as GNU extensions have less priority and might not even be implemented, with the rule of thumb being about the complexity of the patch needed to enable support. If it's just an alias or a simple match, it should be ok, but if it needs substantial support from the assembler just for that legacy/extension, than it's likely not going in.

I'll review each one of the depending bugs individually, thanks for getting my attention to this.

cheers,
--renato

@nico
Copy link
Contributor Author

nico commented Jul 24, 2014

I hadn't seen the attached bugs to this one, but I will now.

Cool. It's probably not a complete list; I'll add more things over time.

pre-UAL support

What's "UAL"?

as well as GNU extensions

Is there a standard for assemblers? I thought it's all implementation-defined. How do I know if something is a GNU extension? (The two patches I've sent so far fall into the "low complexity" bucket though, I think.)

@compnerd
Copy link
Member

compnerd commented Aug 3, 2014

pre-UAL support

What's "UAL"?

Unified assembly language. The ARM assembly evolved over time, and had lots of different mnemonics that behaved slightly differently. In order to simplify things, the FPU and CPU operations were renamed and made uniform and became known as UAL.

GAS doesn't default to it, though it supports it. Just make sure that you add

.syntax unified

to the beginning of any assembly file and things should be completely compatible against any reasonably recent version of binutils and LLVM IAS.

@rengolin
Copy link
Member

rengolin commented Aug 3, 2014

Hi Saleem,

Thanks for answering the question, I completely missed that.

Nico, about the standards for ASM, unfortunately there isn't. UAL is an attempt from ARM to create a unified assembly syntax, but there are probably as many extensions from GNU, ARM and LLVM together than there are rules. The UAL not only unified ARM and Thumb, but also deprecated some old mnemonics.

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/BABJIHGJ.html

Most of the problems we have now on the integrated ARM assembler are due to pre-UAL and extensions syntax being used in the wild, and we have to balance implementing them or kindly requesting the users to update their syntax. The rules of thumb are:

  • Non-extensions/non-pre-UAL issues are critical, needs fixing in the integrated assembler.

  • Extensions/pre-UAL can be fixed in the assembler if:

  • The syntax is an alias/mnemonic to a UAL token and implementing it would just mean adding a new case to a switch or similar.
  • The syntax is widely used in the wild and asking all users would be impractical. In this case, a discussion should be held as to what's the best way to implement without making the whole code worse. We might decide we can't.
  • Changes that require deep changes to the compiler, or are easily worked around by another feature, or would make it harder to maintain other areas of the compiler should NOT go in.

@nico
Copy link
Contributor Author

nico commented Mar 17, 2016

Current status: -integrated-as is enabled for all but four targets (https://bugs.chromium.org/p/chromium/issues/detail?id=124610#c33)

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #20800

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #20797

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #20802

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #20803

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #20801

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #20821

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #21074

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #21076

@stephenhines
Copy link
Collaborator

mentioned in issue #21794

@jsonn
Copy link
Contributor

jsonn commented Nov 26, 2021

mentioned in issue #23374

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #26096

@nico
Copy link
Contributor Author

nico commented Nov 26, 2021

mentioned in issue #26094

@sbc100
Copy link
Collaborator

sbc100 commented Nov 26, 2021

mentioned in issue #30406

@nico
Copy link
Contributor Author

nico commented May 9, 2023

This has been fixed for a while. https://crbug.com/124610 was the last holdout, and it got resolved 4 years ago or so.

@nico nico closed this as completed May 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:ARM bugzilla Issues migrated from bugzilla
Projects
None yet
Development

No branches or pull requests

6 participants