Comments (3)
After #369 , this leads to a crash due to an illegal COPY
being emitted where an 8-bit GPR is assigned to RS1
.
Essentially, pointers need to be automatically promoted between address spaces for this to work correctly - for now, after said PR gets merged, you can work around this by casting manually: memset((char*) intthing, 42, 10);
.
I'm not sure what the correct way to fix this is.
from llvm-mos.
@asiekierka , if you get around to this, take a look at isAddressSpaceSupersetOf in clang/AST/Type.h. I think that logic determines whether an implicit conversion between address spaces is attempted.
EDIT: It doesn't look like there's any target plumbing for this... concerning. We may need to create this ex nihilo. We should see if that would even help first.
from llvm-mos.
That's fine. Target plumbing is handled elsewhere, just by virtue of the SupersetOf function being of the "assume explicit conversion if not" kind.
However, that method is never called to check for a difference between the zero-page pointer type and non-zero-page pointer type in the first place. I'm worried we may be brushing up on the limits of Clang's address space handling (mostly built to satisfy AMD's OpenCL needs).
from llvm-mos.
Related Issues (20)
- Lower mem intrinsics to loops
- G_OR prevents selection of addressing mode HOT 1
- Don't copy single-use strings to the zero page
- rustc crash HOT 2
- Compilation failure on MacOS w. Apple silicon HOT 11
- Builder for Apple Silicon
- mos-sim crash HOT 1
- Triple selection doesn't accommodate mos-<platform>-<type>-<subtype> syntax
- [65C816, 65CE02] Long branch instructions not supported HOT 2
- ld.lld: error: undefined symbol: __rc4 to __rc24 HOT 3
- Missing G_SBC commutation for equality checks HOT 1
- [Assembler] Improved ergonomics for 65816 (and other) subtargets HOT 14
- [Assembler] .byte/.short don't support MOS expression parsing
- [Interrupts] Current interrupt C generation inadequate for CBM machines HOT 2
- Redundant copy and spilling HOT 1
- Compiler crashes when try to access a member variable of a class through inline assembly HOT 5
- Declaration order of member variables has a big impact on code optimization HOT 1
- Surface error messages for inline assembly
- LLD verbose mode should print the command lines of invoked `ld65` steps
- Faster Signed Comparison to Constants HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from llvm-mos.