authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-06-28 19:44:50-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-06-28 19:45:10-04:00
log1eed0cf0f328372ddd8938ad3a95e37cb15ce6fb
tree92ac5db6e2f0a6a22d305ed0d42412ae4207fdfd
parentaa92446365b97e167c4162122c66a02b4cbca031

zig fmt and delete unused type


2 files changed, 6 insertions(+), 28 deletions(-)

src-self-hosted/codegen.zig+5-6
...@@ -54,7 +54,7 @@ pub fn generateSymbol(...@@ -54,7 +54,7 @@ pub fn generateSymbol(
54 // Prepare the function parameters54 // Prepare the function parameters
55 switch (bin_file.options.target.cpu.arch) {55 switch (bin_file.options.target.cpu.arch) {
56 .x86_64 => {56 .x86_64 => {
57 const integer_registers = [_]Reg(.x86_64){.rdi, .rsi, .rdx, .rcx, .r8, .r9};57 const integer_registers = [_]Reg(.x86_64){ .rdi, .rsi, .rdx, .rcx, .r8, .r9 };
58 var next_int_reg: usize = 0;58 var next_int_reg: usize = 0;
5959
60 for (param_types) |param_type, src_i| {60 for (param_types) |param_type, src_i| {
...@@ -64,7 +64,7 @@ pub fn generateSymbol(...@@ -64,7 +64,7 @@ pub fn generateSymbol(
64 try mc_args.append(.{ .stack_offset = next_stack_offset });64 try mc_args.append(.{ .stack_offset = next_stack_offset });
65 next_stack_offset += param_type.abiSize(bin_file.options.target);65 next_stack_offset += param_type.abiSize(bin_file.options.target);
66 } else {66 } else {
67 try mc_args.append(.{ .register = @enumToInt(integer_registers[next_int_reg])});67 try mc_args.append(.{ .register = @enumToInt(integer_registers[next_int_reg]) });
68 next_int_reg += 1;68 next_int_reg += 1;
69 }69 }
70 },70 },
...@@ -75,10 +75,9 @@ pub fn generateSymbol(...@@ -75,10 +75,9 @@ pub fn generateSymbol(
75 "TODO implement function parameters of type {}",75 "TODO implement function parameters of type {}",
76 .{@tagName(param_type.zigTypeTag())},76 .{@tagName(param_type.zigTypeTag())},
77 ),77 ),
78 }78 },
79 }79 }
80 }80 }
81
82 },81 },
83 else => return Result{82 else => return Result{
84 .fail = try ErrorMsg.create(83 .fail = try ErrorMsg.create(
...@@ -113,7 +112,7 @@ pub fn generateSymbol(...@@ -113,7 +112,7 @@ pub fn generateSymbol(
113112
114 function.gen() catch |err| switch (err) {113 function.gen() catch |err| switch (err) {
115 error.CodegenFail => return Result{ .fail = function.err_msg.? },114 error.CodegenFail => return Result{ .fail = function.err_msg.? },
116 else => |e| return e, 115 else => |e| return e,
117 };116 };
118117
119 if (function.err_msg) |em| {118 if (function.err_msg) |em| {
...@@ -689,7 +688,7 @@ const Function = struct {...@@ -689,7 +688,7 @@ const Function = struct {
689 },688 },
690 .stack_offset => |off| {689 .stack_offset => |off| {
691 return self.fail(src, "TODO implement genSetReg for stack variables", .{});690 return self.fail(src, "TODO implement genSetReg for stack variables", .{});
692 }691 },
693 },692 },
694 else => return self.fail(src, "TODO implement genSetReg for more architectures", .{}),693 else => return self.fail(src, "TODO implement genSetReg for more architectures", .{}),
695 }694 }
src-self-hosted/codegen/x86_64.zig+1-22
...@@ -67,25 +67,4 @@ pub const Register = enum(u8) {...@@ -67,25 +67,4 @@ pub const Register = enum(u8) {
67 }67 }
68};68};
6969
70// zig fmt: on70// zig fmt: on
71
72/// After argument values have been computed, they are placed either in registers
73/// or pushed on the stack. The way values are passed depends on the class.
74pub const ParameterClass = enum {
75 /// Integral types that fit into one of the general purpose registers.
76 integer,
77 /// Types that fit into a vector register.
78 sse,
79 /// Types that fit into a vector register and can be passed
80 /// and returned in the upper bytes of it.
81 sse_up,
82 /// Types that will be returned via the x87FPU.
83 x87,
84 /// Types that will be returned via the x87FPU and can be passed and returned
85 /// in the upper bytes of it.
86 x87_up,
87 /// Types that will be returned via the x87FPU.
88 complex_x87,
89 /// Types that will be passed and returned in mem-ory via the stack.
90 memory,
91};
\ No newline at end of file