diff options
| author | Robert Norton | 2016-11-07 12:17:51 +0000 |
|---|---|---|
| committer | Robert Norton | 2016-11-08 12:27:56 +0000 |
| commit | a6dd161641e03fd788308d09cc86a1f51b776b9b (patch) | |
| tree | b0c4934ffba0e48050bf2fb9d5b92f4580408e57 /mips/hgen | |
| parent | c187384c60b72b754a51be97d655762c053ea24d (diff) | |
add mips thread start instruction.
Diffstat (limited to 'mips/hgen')
| -rw-r--r-- | mips/hgen/ast.hgen | 1 | ||||
| -rw-r--r-- | mips/hgen/fold.hgen | 1 | ||||
| -rw-r--r-- | mips/hgen/map.hgen | 1 | ||||
| -rw-r--r-- | mips/hgen/pretty.hgen | 2 | ||||
| -rw-r--r-- | mips/hgen/sail_trans_out.hgen | 1 | ||||
| -rw-r--r-- | mips/hgen/trans_sail.hgen | 2 |
6 files changed, 7 insertions, 1 deletions
diff --git a/mips/hgen/ast.hgen b/mips/hgen/ast.hgen index 1e70d949..a251adff 100644 --- a/mips/hgen/ast.hgen +++ b/mips/hgen/ast.hgen @@ -1,3 +1,4 @@ +| `MIPSThreadStart | `MIPSRType of mipsRTypeOp * reg * reg * reg | `MIPSIType of mipsITypeOp * reg * reg * bit16 | `MIPSShiftI of mipsShiftIOp * reg * reg * bit5 diff --git a/mips/hgen/fold.hgen b/mips/hgen/fold.hgen index fb2f6de2..05b9c808 100644 --- a/mips/hgen/fold.hgen +++ b/mips/hgen/fold.hgen @@ -1,3 +1,4 @@ +| `MIPSThreadStart -> (y_reg, y_sreg) | `MIPSRType (op, rd, rs, rt) -> fold_reg rt (fold_reg rs (fold_reg rd (y_reg, y_sreg))) | `MIPSIType (op, rs, rt, imm) -> fold_reg rs (fold_reg rt (y_reg, y_sreg)) | `MIPSShiftI (op, rd, rt, imm) -> fold_reg rt (fold_reg rd (y_reg, y_sreg)) diff --git a/mips/hgen/map.hgen b/mips/hgen/map.hgen index 5c6cde6a..f5116bae 100644 --- a/mips/hgen/map.hgen +++ b/mips/hgen/map.hgen @@ -1,3 +1,4 @@ +| `MIPSThreadStart -> `MIPSThreadStart | `MIPSRType (op, rd, rs, rt) -> `MIPSRType (op, map_reg rd, map_reg rs, map_reg rt) | `MIPSIType (op, rs, rt, imm) -> `MIPSIType (op, map_reg rs, map_reg rt, imm) | `MIPSShiftI (op, rd, rt, imm) -> `MIPSShiftI (op, map_reg rd, map_reg rt, imm) diff --git a/mips/hgen/pretty.hgen b/mips/hgen/pretty.hgen index d9b94def..e4bc0b6d 100644 --- a/mips/hgen/pretty.hgen +++ b/mips/hgen/pretty.hgen @@ -1,4 +1,4 @@ -| `MIPSThreadStart -> "START" (* TODO *) +| `MIPSThreadStart -> "syscall 0xfffff" (* thread start *) | `MIPSStopFetching -> "STOP" (* TODO *) | `MIPSRType (op, rd,rs,rt) -> sprintf "%s %s,%s,%s" (pp_rtype_op op) (pp_reg rd) (pp_reg rs) (pp_reg rt) diff --git a/mips/hgen/sail_trans_out.hgen b/mips/hgen/sail_trans_out.hgen index 2911137e..6c956675 100644 --- a/mips/hgen/sail_trans_out.hgen +++ b/mips/hgen/sail_trans_out.hgen @@ -1,3 +1,4 @@ +| ("SYSCALL_THREAD_START", []) -> `MIPSThreadStart | ("ADD" , [rs; rt; rd]) -> `MIPSRType (MIPSROpADD , (translate_out_ireg rd), (translate_out_ireg rs), (translate_out_ireg rt)) | ("ADDU" , [rs; rt; rd]) -> `MIPSRType (MIPSROpADDU , (translate_out_ireg rd), (translate_out_ireg rs), (translate_out_ireg rt)) | ("AND" , [rs; rt; rd]) -> `MIPSRType (MIPSROpAND , (translate_out_ireg rd), (translate_out_ireg rs), (translate_out_ireg rt)) diff --git a/mips/hgen/trans_sail.hgen b/mips/hgen/trans_sail.hgen index 4b7c7882..9a34ff49 100644 --- a/mips/hgen/trans_sail.hgen +++ b/mips/hgen/trans_sail.hgen @@ -1,3 +1,5 @@ +| `MIPSThreadStart -> + ("SYSCALL_THREAD_START", [], []) | `MIPSStopFetching -> ("ImplementationDefinedStopFetching", [], |
