@@ -49,7 +49,7 @@ class BackendX86_64 : CompilerBackend {
49
49
bool useLibc;
50
50
uint tempLabelNum;
51
51
bool useGas = false ;
52
- bool useFramePtr = true ;
52
+ bool useFramePtr = false ;
53
53
int [string ] fileID;
54
54
55
55
this () {
@@ -875,7 +875,8 @@ class BackendX86_64 : CompilerBackend {
875
875
var.type.type = GetType(type.name);
876
876
var.type.ptr = type.ptr;
877
877
var.offset = cast (uint ) offset;
878
- offset += var.Size();
878
+ var.stackSize = 8 ;
879
+ offset += var.StackSize();
879
880
variables ~= var;
880
881
}
881
882
@@ -904,7 +905,7 @@ class BackendX86_64 : CompilerBackend {
904
905
905
906
size_t scopeSize;
906
907
foreach (ref var ; variables) {
907
- scopeSize += var.Size ();
908
+ scopeSize += var.StackSize ();
908
909
909
910
if (var.type.hasDeinit && ! var.type.ptr) {
910
911
output ~= format(" lea rax, [rsp + %d]\n " , var.offset);
@@ -1208,7 +1209,7 @@ class BackendX86_64 : CompilerBackend {
1208
1209
else {
1209
1210
size_t scopeSize;
1210
1211
foreach (ref var ; variables) {
1211
- scopeSize += var.Size ();
1212
+ scopeSize += var.StackSize ();
1212
1213
1213
1214
if (var.type.hasDeinit && ! var.type.ptr) {
1214
1215
output ~= format(" lea rax, [rsp + %d\n ]" , var.offset);
@@ -1431,7 +1432,7 @@ class BackendX86_64 : CompilerBackend {
1431
1432
else {
1432
1433
size_t scopeSize;
1433
1434
foreach (ref var ; variables) {
1434
- scopeSize += var.Size ();
1435
+ scopeSize += var.StackSize ();
1435
1436
1436
1437
if (var.type.hasDeinit && ! var.type.ptr) {
1437
1438
output ~= format(" lea rax, [rsp + %d]\n " , var.offset);
0 commit comments