Comments (3)
Hello @bartoldeman,
Thanks for the report. My understanding is that -fcaller-saves
(enabled with -Os
) should, by right, not result in worse code than -fno-caller-saves
. I will need to find out what is going on here.
Thank you!
from gcc-ia16.
Hello @bartoldeman,
I have added an optimization subpass to do something along the lines of what you proposed.
(As always, of course, I will need to do further tests on it to make sure it does not break anything.)
Thank you!
from gcc-ia16.
Hello @bartoldeman,
Further down the compiled code, there is this bit which makes it a bit hard to get rid of the frame pointer %bp
:
movw -2(%bp), %dx
xorb %cl, %cl
cmpw %ax, %dx
jle .L2
movb $1, %cl
.L2:
...
movw %bp, %sp
popw %bp
popw %si
ret
I think it will be nice if GCC can somehow change the move into %dx
into a popw %dx
, but my optimization subpass does not do that yet.
Thank you!
from gcc-ia16.
Related Issues (20)
- Various issues building the `G` editor ... HOT 4
- Verify if -mcmodel=medium still enables -msegment-relocation-stuff HOT 3
- Potential optimization: Interesting code generation quirk
- Compact/large memory models HOT 1
- Medium model data relocations not emitted for ELKS? HOT 5
- Undefined references on ELKS kernel with compiler upgrade HOT 6
- Feature request: ISR attribute to save call-used registers HOT 6
- Far function pointer calls violate %ds = .data invariant HOT 3
- is flat memory model supported? HOT 1
- medium memory model doesn't seem to work HOT 25
- how DPMI-safe is libc? HOT 20
- long type seems broken HOT 2
- i386 support? HOT 13
- please enable UMB for internal allocs
- 32bit dpmi mode? HOT 48
- How to add option to r-elks.specs file HOT 2
- possible -mdpmi extensions HOT 2
- enlarge overlay info? HOT 15
- Potential optimization: (AX << 8) | value => AH<-AL; AL=value HOT 2
- ICE in g++ for template constructor with -mno-callee-assume-ss-data-segment HOT 3
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 gcc-ia16.